You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:18:03