【发布时间】:2021-07-19 07:57:07
【问题描述】:
我编写了一个代码,可以测试一个数是否是素数、索菲热尔曼素数、孪生素数和梅森素数。我需要把它变成一个新代码来测试所有数字 0-1000000 并打印出属于这些类型的每个数字。这是我需要更改的原始程序
import java.util.Scanner;
public class PrimeMethodsDemo_slm {
public static boolean isPrime (int n) {
boolean isPrime = true;
if (n < 2) isPrime = false;
else if (n == 2) isPrime = true;
else for (int i = 2; i < Math.sqrt(n) + 1; ++i) {
if (n % i == 0) return false;
}
return isPrime;
}
public static boolean isSophieGermainPrime (int n) {
boolean isPrime = true;
if (n < 2) isPrime = false;
else if (n == 2) isPrime = true;
else for (int i = 2; i < Math.sqrt(n) + 1 & (i < Math.sqrt(n * 2 + 1) + 1);
++i)
{
if (n % i == 0) return false;
}
return isPrime;
}
public static boolean isTwinPrime (int n) {
boolean isPrime = true;
if (n < 2) isPrime = false;
else if (n == 2) isPrime = true;
else for (int i = 2; i < Math.sqrt(n) & i < Math.sqrt(n + 2) + 1; ++i) {
if (n % i == 0) return false;
}
return isPrime;
}
public static boolean isMersennePrime (int n) {
boolean isPrime = true;
if (n < 2) isPrime = false;
else if (n == 2) isPrime = true;
else
for (int i = 2; i < Math.sqrt(n) + 1 & i < Math.sqrt(2 * n - 1) + 1; ++i)
{
if (n % i == 0) return false;
}
return isPrime;
}
}
【问题讨论】:
-
您的代码缺少
main方法。如果您的原始代码中有它,请添加它。 -
另外,编辑代码以显示原始方法。我根据误解的要求进行了错误的编辑。