Pollard’s Rho Algorithm for Prime Factorization in java


这是一种执行给定整数分解的算法。以下是实施用于质因数分解的 Rho 算法的程序。

程序

在线示例

public class PollardsRho {
   int num = 65;
   public int gcd(int a, int b) {
      int gcd = 0;
      for(int i = 1; i <= a || i <= b; i++) {
         if( a%i == 0 &amp;&amp; b%i == 0 ) {
            gcd = i;
         }
      }
      return gcd;
   }
   int g(int x) {
      return ((x*x)-1) % num;
   }
   public static void main(String args[]) {
      PollardsRho obj = new PollardsRho();
      int x = 2, y = 2, d = 1;
      while(d==1) {
         x = obj.g(x);
         y = obj.g(obj.g(y));
         d = obj.gcd((x - y), obj.num);
      }
      if (d == obj.num) {
         System.out.println("Cannot calculate GCD for this element");
      } else {
         System.out.println("One of the divisors of given number is "+d);
      }
   }
}

输出

One of the divisors of given number are 5

更新时间:25-6 月-2020 年

192 次浏览

启动你的 职业

完成课程后获得认证

开始
广告