用途:分解大数因数
复杂度 : O(很快)
基本思路:
考虑构造一个序列
x
1
,
x
2
,
x
3....
x
n
x1,x2,x3....xn
x1,x2,x3....xn
如果有$d = gcd(abs(xi , xi + 1) , N) > 1 $
等价于 d是N的一个因数
但,构造序列的方法有很多,该算法选用了一种好写 + 好想的 : (伪随机方法构造序列)
令 X i = ( X i − 1 ∗ X i − 1 + C ) 令Xi = (Xi - 1 * Xi - 1 + C) % N 令Xi=(Xi−1∗Xi−1+C)
然后该算法的基础版:就是判断这个序列是否重复成环,成环了就选取下一个C
并且同时筛N的因数
然后你判环的同时,可以倍增的去处理(不会++)
然后就咕咕了