**6.28(梅森素数)如果一个素数可以写成的形式,其中p是某个正整数,那么这个素数就称作梅森素数。编写程序,找出p31的所有梅森素数,然后如下显示输入结果:
p 2^p-1
------------------------------
2 3
3 7
5 31
........
**6.28(Mersenne prime) A prime number is called a Mersenne prime if it can be written in the form for some positive integer p. Write a program that finds all Mersenne primes with p 31 and displays the output as follows:
p 2^p-1
------------------------------
2 3
3 7
5 31
........
下面是参考答案代码:
public class MersennePrimeQuestion28 {
public static void main(String[] args) {
printTableHead();
for(int i = 2;i <= 31;i++)
if(isPrime((long)(Math.pow(2, i)-1)))
System.out.printf("%d\t\t%d\n", i, (long)(Math.pow(2, i)-1));
}
public static boolean isPrime(long number) {
for (int i = 2; i <= Math.sqrt(number); i++)
if (number % i == 0)
return false;
return true;
}
public static void printTableHead() {
System.out.println("p\t\t2^p-1");
for(int i = 1;i <= 24;i++)
System.out.print("-");
System.out.print("\n");
}
}
运行效果:
注:编写程序要养成良好习惯
1.文件名要用英文,具体一点
2.注释要英文
3.变量命名要具体,不要抽象(如:a,b,c等等),形式要驼峰化
4.整体书写风格要统一(不要这里是驼峰,那里是下划线,这里的逻辑段落空三行,那里相同的逻辑段落空5行等等)
5.普通变量,方法名要小驼峰,类名要大驼峰,常量要使用全部大写加上下划线命名法
6.要学习相应的代码编辑器的一些常用快捷键,如:快速对齐等等