/* Lab : Lab6 Day : Tuesday [ 09 Sept 08 ] Problem Number: 02 Problem Title : Mersenne Prime Theory : The hint provided in the question is complete. Let's follow the guidelines given in the hint 1. Write method "isPrime" for to test a number for primarity 2. Write method "GenerateMersenneNumber" it takes a number n as input and returnes 2^n-1 a simple for loop will do the job */ class sol_lab6_prob02{ //method "isPrime" returns 1 if number is prime, otherwise returnes 0 public static int isPrime(long number) { long i; for( i = 2; i*i <= number ; i = i + 1) { if( ( number % i ) == 0 ) { return 0; } } return 1; } //method "GenerateMersenneNumber" public static long GenerateMersenneNumber(int n) { int i; long two_raised_power_i; two_raised_power_i = 1; for ( i = 1 ; i <= n ; i = i + 1 ) { two_raised_power_i = two_raised_power_i * 2; } return ( two_raised_power_i - 1 ); } public static void main(String args[]) { int i; System.out.println(" Mersenne Prime are "); for( i = 2 ; i <= 31 ; i = i + 1 ) { if( isPrime( i ) == 1 ) { if ( isPrime( GenerateMersenneNumber(i) ) == 1 ) { System.out.println(" " + GenerateMersenneNumber(i) + "( = 2 ^ " + i + " - 1 )" ); } } } } }