当前位置: 首页 > 工具软件 > Rho > 使用案例 >

rho

昝卓
2023-12-01
bigint pollard_rho(bigint C, bigint N) //返回一个平凡因子
{
    bigint I, X, Y, K, D;
    I = 1;
    X = Y = rand() % N;
    K = 2;
    do
    {
        I++;
        D = gcd(N + Y - X, N);//这里为了防止负数,先加上一个N
        if (D > 1 && D < N) return D;//如果D不是非平凡因子
        if (I == K) Y = X, K <<= 1;
        X = (product_mod(X, X, N) + N - C) % N;//随机一个增量来求X,Y,使得gcd(Y - X,N)不是非平凡因子(不是1,跟N)
    }
    while (Y != X);
    return N;
}

  

转载于:https://www.cnblogs.com/flukehn/p/8411314.html

 类似资料:

相关阅读

相关文章

相关问答