任务是找到给定数字的素数。这是代码
import java.util.ArrayList;
public class Queue {
private static int number = 0;
private static int prime;
public static void calculatePrime(int p) {
while (prime <p) {
if (number % 2 != 0)
number++;
prime++;
{
number++;
}
}
System.out.println(number );
}
public static void main(String args[]) {
calculatePrime(10001);
}
}
当输入值为3时,它会打印出正确的值5,但是当输入值为10001时,它会打印出104743以外的数字
答案 0 :(得分:1)
这是编译器看到的calculatePrime
方法:
public static void calculatePrime(int p) {
while (prime <p) {
if (number % 2 != 0)
number++;
prime++;
number++;
}
System.out.println(number );
}
您可以使用以下内容:
public static void calculatePrime(int p) {
int primeCandidate = p;
while (!isPrime(primeCandidate)) {
primeCandidate++;
}
System.out.println(number );
}
如果候选人是素数,你需要一个方法来返回true。有很多这些可用于谷歌搜索的小价格。