1 package codeTask_FangFa;
 2 //5.28       梅森素数。  跑起来有些慢,先丢在这了。
 3 public class MeiSenSuShu {
 4   public static void main(String[] args){
 5     System.out.println("P            2^P-1");
 6     int number=2;
 7     for(int p=0;p<=31;number++){
 8           if(isSuShu(number)){
 9               if(isMeiSenSuShu(number)){
10                   p = getP(number);
11                   System.out.printf("%8d",p);
12                   long sum = (long)(Math.pow(2, p)-1);
13                   System.out.printf("%8d\n",sum);
14               }
15           }
16     }
17   }
18   
19   public static boolean isSuShu(int number){    //是素数就true
20       for(int i =2;i<=number/2;i++){
21           if(number%i==0)
22               return false;
23       }
24       return true;
25   }
26   
27   public static boolean isMeiSenSuShu(int number){              //是梅森素数就true
28       for(int p = 0;p<1000;p++){
29           if(Math.pow(2, p)==number+1)
30               return true;
31       }
32       return false;
33   }
34   
35   public static int getP(int number){                          //     得到P
36       for(int p =0;p<1000;p++){
37           if(Math.pow(2, p)==number+1)
38               return p;
39       }
40       return -1;
41   } 
42 }