C++如何让质数判断代码执行后不退出,实现重复运行?
可重复执行的质数判断C++代码
#include <iostream> #include <string> using namespace std; int main() { string input; do { int n, i, m = 0, flag = 0; cout << "(press 'x' to exit) Enter the Number to check if It's a prime Number or not: "; cin >> input; // 输入为x时退出程序 if (input == "x") { break; } // 字符串转整数 n = stoi(input); // 补充小于2的数值判断,修复原代码误判问题 if (n < 2) { cout << "That's not a prime number." << endl; continue; } m = n / 2; for (i = 2; i <= m; i++) { if (n % i == 0) { cout << "That's not a prime number." << endl; flag = 1; break; } } if (flag == 0) cout << "That's a prime number." << endl; } while (true); return 0; }
核心修改说明
- 用
do-while无限循环包裹完整的输入、判断逻辑,实现重复执行效果,输入x时主动跳出循环结束程序 - 输入先读取为字符串类型,避免输入非数字时cin流报错进入死循环
- 每次循环开始时重新初始化标志位变量,避免上一次判断结果影响本次计算
- 补充小于2的数值判断逻辑,修复原代码将0、1、负数误判为质数的问题
内容的提问来源于stack exchange,提问作者SlothGamer
相关产品推荐
相关产品推荐

