based on dixon factoring algorithm factor 53663Solutionpacka

based on dixon factoring algorithm, factor 53663

Solution

package com.java.dixon;


public class Factor {
public static void main(String args[])
{
double n = 53663;
dixon(n);
}
  
public static double gcd(double a,double b)
{
       if (b == 0) {
           return a;
       } else if (b > a) {
           return gcd(b, a);
       } else {
           return gcd(b, a % b);
       }
}
  
   public static int checkprime(double n) {
       int f = 0;
       for (int i = 2; i <= n / 2; i++) {
           if (n % i == 0) {
               f = 1;
               break;
           }
       }
       if (f == 1)
           return 0;
       else
           return 1;
   }
  
  
   public static void dixon(double n) {
       int b1, d1;
       double sqrtn, p, q;
       sqrtn = Math.sqrt(n);
       double c = Math.floor(sqrtn);
       int f1 = 0;
       for (double f = c + 1; f <= n; f++) {
           double s, m1;
           s = Math.sqrt((f * f) % n);
           m1 = Math.floor(s);
           if ((s - m1) == 0) {
               if (s != (f % n)) {
                   p = f + s;
                   q = f - s;
                   b1 = checkprime(p);
                   d1 = checkprime(q);
                   if (b1 == 1) {
                       double z = gcd(q, n);
                       int b = checkprime(z);
                       if (b == 1) {
                           System.out.println(\"THE TWO FACTORS ARE \" + z
                                   + \" and \" + p);

                       }
                   } else if (d1 == 1) {
                       double z = gcd(p, n);
                       int b = checkprime(z);
                       if (b == 1) {
                           System.out.println(\"THE TWO FACTORS ARE \" + z
                                   + \" and \" + q);
                       } else
                           System.out
                                   .println(\"Neither of the factors are prime\");
                       f1 = 1;
                       break;
                   }
               }
               if (f1 == 1)
                   break;
           }
       }
   }
}

based on dixon factoring algorithm, factor 53663Solutionpackage com.java.dixon; public class Factor { public static void main(String args[]) { double n = 53663;
based on dixon factoring algorithm, factor 53663Solutionpackage com.java.dixon; public class Factor { public static void main(String args[]) { double n = 53663;

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site