遗憾的“修复我的代码”后检查一个int是首要的Java
编辑:更多有关的for
环比质数,现在也解决了语法。
我的任务是从控制台取出一个int并打印出(在不同的行上)从1到n的所有素数。 我的方法从n开始,检查它的素数,然后将n递减1并循环,直到n = 2。 要检查一个数是否为素数,我运行一个循环,检查是潜水的剩余部分,x的数量等于零,x从2开始并在根(n)处停止。 现在,这一切都在理论上,并阅读我的代码,我没有看到它出错的地方。
public class Prime {
public static boolean isPrime(int n) {
boolean result = true;
for (int x = 2; x>=sqrt(n); x++) {
if ((n % x) == 0) {
result = false;
break;
} else {
x++;
}
}
return result;
}
public static void main(String[] args) {
Scanner intIn = new Scanner(System.in);
int i = intIn.nextInt();
while (i>=2) {
if (isPrime(i)) {
System.out.println(i);
i--;
} else {
i--;
}
}
}
}
例如为10的输入将返回10(连同9,8,7,6,5,3),即使isPrime()检查是否10%2 == 0,然后设置到result
假。 我在这里错过了什么?
我再次为烦人(轻微重复)的问题表示歉意。
的可能的复制[如何在Java中工作这种素数测试?](https://stackoverflow.com/questions/19514680/how-does-this-prime-number-test-in-java-工作) – Ice