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 numbern";
}
else{
std::cout << input << " is not a prime number.n";
break;
}
}
}
}
else{
std::cout << input << " is not a prime number.n";
}
我试着在这个程序中输入1,但由于某种原因,它没有显示任何输出。根据程序,它应该输出"1不是素数"。但事实并非如此。知道为什么吗?
这是终端输出
PS C:UsersAdministratorcpp class> cd "c:UsersAdministratorcpp class" ; if ($?) { g++ prime.cpp -o prime } ; if ($?) { .prime }
___________PRIME_OR_NOT___________
Enter the number : 1
PS C:UsersAdministratorcpp class>
我尝试在代码中手动设置输入变量,它也不起作用。我希望程序输出"1不是质数"。
如果输入是奇数(1
是奇数),则所有输出都在循环中发生。第一个循环从i = 3
开始,直到i
小于或等于输入为止。但是如果输入是1
,则此循环永远不会执行。
下面的代码可以解决这个问题。
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 numbern";
}
else {
std::cout << input << " is not a prime number.n";
break;
}
}
}
}
else {
std::cout << input << " is not a prime number.n";
}
if(input == 2){
std::cout << input << " is a prime numbern";
}
else if(input < 2){
std::cout << input << " is not a prime numbern";
}
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 numbern";
}
else{
std::cout << input << " is not a prime number.n";
break;
}
}
}
}
else{
std::cout << input << " is not a prime number.n";
}
它正在工作。我将第一个if代码块更改为这个if代码块。
谢谢克里斯。