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 }