割り当ては、p <= 31のすべてのメルセンヌ素数を見つけて、テーブルに表示することです。
p 2^p-1
--- ----
2 3
3 7
5 31
...
これまでの私の結果は次のコードです。
public class PE28MersennePrimeVer2 {
public static void main(String[] args) {
System.out.println("p\t2^p - 1");
for (int number = 2; number <= 31; number++) {
if (isPrime(number)) {
int mersennePrime = (int)(Math.pow(2, number)) - 1;
if (isPrime(mersennePrime)) {
System.out.print(number + "\t" + mersennePrime + "\n");
}
}
}
}
public static boolean isPrime(int number) {
if ((number == 1) || (number == 2)) {
return true;
}
for (int i = 2; i <= number/2; i++) {
if (number % i == 0) {
return false;
}
}
return true;
}
}
出力はpが19までで、31に達することはありません。何が間違っているのでしょうか。