Write a program that finds all Mersenne prime with p<=31 and displays the output as follows:
p 2^p-1
2 3
3 7
5 31
...
- public class C1
- {
- public static void main(String[] args)
- {
- int number = 2;
- System.out.print("p ");
- System.out.println("2^p-1");
- while(number <= 31)
- {
- int newnumber = (int)Math.pow(2, number) - 1;//計算2^p-1
- boolean a = isMersennePrimesNumber(newnumber);
- if(a == true)
- {
- System.out.print(number + " ");
- System.out.println(newnumber);
- }
- number ++ ;
- }
- }
- public static boolean isMersennePrimesNumber(int number)
- {
- boolean bool = false ;
- int remainder = 0;
- int factor = 0 ;
- for(int i = 1 ; i <= number ; i++)//計算此數的因數個數
- {
- remainder = number % i;
- if(remainder == 0)
- {
- factor = factor + 1;
- }
- }
- if(factor == 2)
- {
- bool = true ;
- remainder = 0;
- factor = 0 ;
- }
- else if(factor != 2)
- {
- bool = false ;
- remainder = 0;
- factor = 0 ;
- }
- return bool ;
- }
- }
沒有留言:
張貼留言