素数检查并再次播放功能

时间:2019-01-29 23:23:56

标签: c++

我目前正在使用C ++,我的任务之一是创建一个程序,检查该数字是否为质数,以正确处理无效数字。 整数输入。此外,用户应该能够在一次运行中测试任意数量的整数。换句话说,除非用户告诉您,否则程序不应结束。

我了解素数检查部分,但我无法弄清楚是否要实现“在一次运行中测试尽可能多的整数并处理无效输入”

任何对代码的评论和编辑将不胜感激。谢谢!

using namespace std;
int main () {

    int num, i, count = 0;
    cout << "Enter the number to be checked : ";
    cin >> num;
    if (num == 0)
    {
        cout << "\n" << num << " is not prime";
        exit(1);
    }
    else   {
            for(i=2; i < num; i++)
                if (num % i == 0)
                    count++;
    }
    if (count > 1)
        cout << "\n" << num << " is not prime.";
    else
        cout << "\n" << num << " is prime.";
    return 0;
}

1 个答案:

答案 0 :(得分:0)

这是您可以尝试的代码。输入数字后,程序将通过输入yn询问您是否要继续。
如果用户输入y,程序将继续循环并再次询问问题,否则将中断循环。
最后说明:请勿使用using namespace std(不良习惯)

#include <iostream>
#include <string>

int main () {

    int num, i, count = 0;
    char flag;
    while(1)
    {   
        std::cout << "Enter the number to be checked : ";
        std::cin >> num;
        if (num == 0)
        {
            std::cout << "\n" << num << " is not prime";
        }
        else   {
                for(i=2; i < num; i++)
                    if (num % i == 0)
                        count++;
        }
        if (count > 1)
            std::cout << "\n" << num << " is not prime."<<std::endl;
        else
            std::cout << "\n" << num << " is prime."<<std::endl;

        std::cout <<"Do you want to continue? [y/n]";
        std::cin >> flag;
        if (flag == 'n')
            break;
    }
    return 0;
}

当然,您可以将y/n更改为另一个字符或字符串或int或任何您想要的内容