我目前正在使用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;
}
答案 0 :(得分:0)
这是您可以尝试的代码。输入数字后,程序将通过输入y
或n
询问您是否要继续。
如果用户输入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或任何您想要的内容