我应该为 Java Intro 类编写一个程序,列出从用户输入的数字开始的素数。但是,使用我的代码,如果用户输入素数,我的程序将不会列出该数字,即使它应该在它是素数时这样做。有人可以给我提示为什么它不起作用吗?
int userNum=kbd.nextInt();
if (userNum<2){
System.out.println("Not a valid number.");
System.exit(1);
}
System.out.println("The prime numbers up to your integer are:");
for (int num1 = 2; num1<userNum; num1++) {
boolean prime = true;
for (int num2 = 2; num2 < num1; num2++) {
if (num1 % num2 == 0) {
prime = false;
break;
}
}
// Prints the number if it's prime.
if (prime) {
System.out.print(num1 + " ");
}
}
例如,当我输入“19”时,程序会打印“17”之前的所有质数(包括“17”)。 谢谢!
最佳答案
您需要num1
取值 userNum
作为要检查的最后一个值。
因此,您需要替换 num1 < userNum
与 num1 <= userNum
.
关于Java - 为什么我的素数程序不打印最后一个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26457062/