题目描述:
(梅森素数)如果一个素数可以写成2^p-1的形式,其中p是某个正整数,那么这个素数就称作梅森素数。编写程序,找出p<=31的所有梅森素数,然后如下显示输入结果:
思路:
- 遍历2^p-1(2<=p<=31)之间的所有的数。
- 判断这些数中哪些是素数。
代码
public class Test09 {
public static void main(String[] args) {
//打印表头
System.out.println("p\t\t2^p-1");
System.out.println("————————————————————————");
int number = 0;
for(int p = 2; p <=31; p++)
{
number = (int)Math.pow(2, p) - 1;
if(isPrime(number))
{
System.out.printf("%d\t\t%d\n",p,number);
}
}
}
//判断一个数是否为素数
public static boolean isPrime(int n) {
for(int i = 2; i < n; i++)
{
if(n % i == 0)
return false;
}
return true;
}
}