Pollard’s Rho Algorithm for Prime Factorization in java


It is an algorithm to perform factorization on given integers. Following is the program implementing the Rho Algorithm for Prime Factorization.

Program

Live Demo

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);
      }
   }
}

Output

One of the divisors of given number are 5

Updated on: 25-Jun-2020

156 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements