【发布时间】:2018-08-10 20:52:07
【问题描述】:
我遇到了一个问题,要求计算 gcd(a-b,a^n+b^n)%(10^9+7) 其中 a,b,n 可以大到 10^12。
对于非常小的数字,我能够解决 a、b 和 n 的问题,而费马定理似乎也不起作用,我得出的结论是,如果 a、b 互质,那么这将始终给我 gcd 为2 但其他的我都买不到?
我只需要一点提示,我做错了什么来获得大量的 gcd?我还尝试 x^y 通过在每一步取模来查找 gcd,但这也没有用。
只需要方向,我会走自己的路。
提前致谢。
【问题讨论】:
-
您是否通过平方研究过幂运算?从例如的角度来看,
n = 10^12很小。指数在 2^512 左右的模幂运算是常规的密码学。 -
是的,我用过它,但是对于 (10^12)^(10^12) 没有地方存储该数字,如果我在每一步都取模,那将是不正确的,因为 gcd 会如果我做错了什么,要与众不同还是纠正我?
-
我正在单独计算 a^n 和 b^n 所以如果我找到 gcd(a-b, a^n+b^n)%10^9+7 因为它会给我错误的答案,如果我在每一步都取模 a^n%10^9+7 仍然会给我错误的答案
标签: math numbers modulo greatest-common-divisor