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 次瀏覽

啟動你的 職業

完成課程後獲得認證

開始
廣告