Saturday 11 July 2009

The Mersenne Prime Number have been found

/*This program finds all the Mersenne Primes
if the PC supports the immense memory usage
*/


import
java.math.BigInteger;
import java.util.Scanner;
public class MersennePrime {
public static void main(String args[]) {
Scanner limiter = new Scanner(System.in);
System.out.println("Enter the max number of Mersenne Primes you want to find-->");
int counter = limiter.nextInt();
BigInteger prime = BigInteger.valueOf(2);
BigInteger mprime = BigInteger.valueOf(1);
String columnmaker = "|";
while (counter>0) {
boolean primechecker =true;
BigInteger divisor = BigInteger.valueOf(2);
BigInteger x =prime;
BigInteger root = BigInteger.valueOf (0);
BigInteger y =BigInteger.valueOf(-1);
while (x.compareTo(BigInteger.valueOf (0))>=0) {
x = x.add(y);
y=y.add(BigInteger.valueOf(-2));
root=root.add(BigInteger.valueOf(1));
if (x.compareTo(BigInteger.valueOf(0))==0) {
x=BigInteger.valueOf(-1);
}
}
while (root.compareTo(divisor)>=1) {
BigInteger reminder = mprime.remainder(divisor);
if (reminder.compareTo( BigInteger.valueOf(0)) == 0) {
primechecker = false;
divisor =mprime;
}
else { divisor=divisor.add(BigInteger.valueOf(1));
}
}
if (primechecker) {
columnmaker =columnmaker + mprime + "| |";
counter-=1;
}
prime =prime.multiply(BigInteger.valueOf(2));
mprime = prime.add(BigInteger.valueOf(-1));
}
System.out.println(columnmaker);
}
}

No comments:

Post a Comment