我在 prime 程序中输入了 1,它没有在 C++ 中显示任何输出 [关闭]

问题描述 投票:0回答:2
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 不是质数”。在终端。

c++ primes
2个回答
0
投票

如果您的输入是奇数,即

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 number\n";
            }
            else {
                std::cout << input << " is not a prime number.\n";
                break;
            }
        }
    }
}
else {
    std::cout << input << " is not a prime number.\n";
}

0
投票
if(input == 2){
    std::cout << input << " is a prime number\n";
}
else if(input < 2){
    std::cout << input << " is not 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";
}

它现在工作。我将第一个 if 代码块更改为这个 if 代码块。

谢谢克里斯。

© www.soinside.com 2019 - 2024. All rights reserved.