好的,我的问题不是如何确定一个数字是否为质数,因为我认为我已经解决了这个问题,而是如何使其正确显示。
这是我的代码:
public static void main(String[] args) {
// Declare Variables
int randomNumbers = 0;
int sum = 0;
//Loop for number generation and print out numbers
System.out.print("The five random numbers are: ");
for (int i = 0; i <= 4; i++)
{
randomNumbers = (int)(Math.random()*20);
sum += randomNumbers;
if (i == 4) {
System.out.println("and " + randomNumbers + ".");
}
else {
System.out.print(randomNumbers + ", ");
}
}
//Display Sum
System.out.println("\nThe sum of these five numbers is " + sum + ".\n");
//Determine if the sum is prime and display results
for(int p = 2; p < sum; p++) {
if(sum % p == 0)
System.out.println("The sum is not a prime number.");
else
System.out.println("The sum is a prime number.");
break;
}
}
}
现在我的问题是,如果数字结尾是9之类的数字,它会说它是一个质数,但实际上它不是。我认为问题是 break 语句只停止了一次循环,所以它没有增加变量p,所以它只测试被2整除(我想)。但是,如果我移除 break 语句,它会在每个通过的时候打印出“总和是/不是质数”,直到退出循环。不确定该怎么做。
for
循环变量(从3开始)的增量改为2而不是1。我已经发布了一个答案,请参考其中的更多细节。 - Ashish Kumarp <= sq
吗?如果我们测试例如数字9,上述代码将不会测试9%3
,因为循环将在循环体的第一次执行后退出。或者我错过了什么? - Tuure