【发布时间】:2017-01-12 09:13:31
【问题描述】:
我需要计算
1^2 + 2^2 + ... + n^2 modulo 10234573
n 最高 20 亿。我需要使用原生 C++ 库。我不知道该怎么做,因为这似乎是一个巨大的数字。
【问题讨论】:
-
带符号的 32 位整数的范围从负二十亿到正二十亿。所以在这里使用普通的
int没问题。 This table of value ranges 你可能会感兴趣。 -
这其实挺有意思的。为什么不研究呢?
-
这不可能是一个巨大的数字 - 根据定义,它必须小于 10234573。提示:
(a+b) % n==((a%n) + (b%n) %n)和x² % n==(x%n)² % n,因此您只需要处理最大为 10234573² 的数字。