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

C++打印小于等于输入值的质数,现有代码输出错误如何解决?

C++打印指定范围内质数问题修复

原代码核心问题

  • 逻辑判断对象错误:当前代码仅判断输入值getNumber能否被遍历变量i整除,而非判断i本身是否为质数,这是结果不符合预期的核心原因
  • 质数判断逻辑缺失:判断单个数值是否为质数需要遍历检查该数值的所有可能因子,仅单次模运算无法得出正确结论
  • prime变量状态未正确重置:每次判断新的数值前,需要先将质数标记默认设为true,找到因子后再改为false,原代码的赋值逻辑完全颠倒

修正后完整实现代码

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int getNumber = 0;
    cout << "请输入一个整数:";
    cin >> getNumber;

    for (int i = 2; i <= getNumber; ++i) {
        bool isPrime = true;
        // 检查到平方根即可覆盖所有可能的因子,提升运行效率
        for (int j = 2; j <= sqrt(i); ++j) {
            if (i % j == 0) {
                isPrime = false;
                break;
            }
        }
        if (isPrime) {
            cout << i << " ";
        }
    }
    cout << endl;
    return 0;
}

运行验证

输入13时,输出结果为2 3 5 7 11 13,完全符合预期要求。

内容的提问来源于stack exchange,提问作者emotionalEE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:24:01