**已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由一个错字或一个无法再复制的问题引起的。虽然类似的问题可能是on-topic在这里,但这个问题的解决方式不太可能帮助未来的读者。
18小时前关闭
Improve this question
if(input == 2){
std::cout << input << " is a prime number.\n";
}
else if(input % 2 != 0){
for(int i = 3; i <= input; i+=2){
if(input % i == 0){
if(i == input){
std::cout << input << " is a prime number\n";
}
else{
std::cout << input << " is not a prime number.\n";
break;
}
}
}
}
else{
std::cout << input << " is not a prime number.\n";
}
我试着在这个程序中输入1,但由于某种原因,它没有显示任何输出。根据程序,它应该输出“1不是素数”。但它不是。知道为什么吗?这是C++;
这是终端输出。
PS C:\Users\Administrator\cpp class> cd "c:\Users\Administrator\cpp class\" ; if ($?) { g++ prime.cpp -o prime } ; if ($?) { .\prime }
___________PRIME_OR_NOT___________
Enter the number : 1
PS C:\Users\Administrator\cpp class>
我试着在代码中手动设置输入变量,但也不起作用。我希望程序在终端中输出“1不是素数”。
2条答案
按热度按时间ilmyapht1#
如果你的输入是奇数,
1
就是奇数,那么所有的输出都会在循环中发生。第一个循环从i = 3
开始,只要i
小于或等于输入,就会循环。但是如果输入是1
,这个循环就永远不会执行。以下内容将纠正这一问题。
0aydgbwb2#
它现在工作了。我把第一个if代码块改成了这个if代码块。
谢谢克里斯。