C 语言代码优化:精准计算 m 到 n 间质数及总和的修正方案
以下是对这段代码的修改及解释。原代码存在几个问题,在函数 `f` 里逻辑有误,判断一个数是否为质数时,不能在第一次取余不为 0 就返回 1,要遍历完所有小于该数的数都不能整除才是质数;另外在 `main` 函数里,计算质数和时格式输出有误,最后还有一个问题是代码没有输出计算得到的质数之和。 ```c #include <stdio.h> // 函数 f 用于判断一个数是否为质数 // 若是质数返回 1,否则返回 0 int f(int a) { // 质数是大于 1 的自然数 if (a <= 1) { return 0; } for (int i = 2; i < a; i++) { // 如果能被 2 到 a-1 之间的数整除,就不是质数 if (a % i == 0) { return 0; } } // 遍历完没有找到能整除它的数,就是质数 return 1; } int main() { int m, n; int count = 0; int temp; int first = 1; // 用于标记是否是第一个质数 // 从用户输入获取 m 和 n 的值 scanf("%d %d", &m, &n); // 保证 m 小于等于 n if (m > n) { temp = m; m = n; n = temp; } // 从 n 到 m 循环,查找质数 for (int i = n; i >= m; i--) { if (f(i) == 1) { if (!first) { // 不是第一个质数,先输出加号 printf("+"); } // 输出质数 printf("%d", i); count = count + i; first = 0; // 标记已不是第一个质数 } } // 输出等于号 printf("="); // 输出质数的和 printf("%d\n", count); return 0; } ``` 代码修改说明: 1. `f` 函数: - 增加了对小于等于 1 的数的判断,因为小于等于 1 的数不是质数。 - 修改了判断逻辑,只有遍历完 2 到 `a - 1` 之间的所有数都不能整除 `a` 时,才返回 1。 2. `main` 函数: - 引入 `first` 变量来标记是否是第一个质数,避免第一个质数前输出加号。 - 循环结束后,输出等于号和质数之和。 这样修改后,代码就能正确找出 `m` 到 `n` 之间的所有质数,按格式输出这些质数以及它们的和。 ######[AI问答 | 683点数解答 | 2025-12-10 20:55:12]
- 工程师必备:十大APP性能优化方案大揭秘(百度文心 | 300点数解答 | 2023-11-09 18:31:04)330
- 数字化制图综合平台:助力企业转型,推动烟草物流图纸智能化设计 (字节豆包 | 490点数解答 | 2024-10-30 20:30:29)142
- 数字化制图综合平台:引领烟草物流及多领域设计革新 在企业数字化转型的时代浪潮中,数字化制图技术创新应用成为产业升级与提升竞争力的关键。企业对高效、精准、智能化设计解决方案需求迫切,构建集二维到三维正逆向工程快捷化、干涉检测可视化、设备明细数据提取自动化以及设备模块模型库于一体的综合平台意义重大。 此平台集成先进数字化制图工具与智能算法,可实现二维设计到三维建模的无缝转换,大大缩短设计周期。正逆向工程能快速切换,满足不同场景设计需求。内置干涉检测功能可实时监测设计潜在冲突,保障设计方案可行与安全。设备明细数据自动提取提高设计准确性与效率。设备模块模型库为设计师提供丰富资源,支持设计标准化与模块化,加速项目推进。 整体来看,该综合平台的应用极大促进了烟草物流行业及更广泛领域的技术创新与效率提升。在烟草物流方案图纸智能化设计中,它提升了图纸设计效率与质量,使设计工作更加高效、精准。对于企业而言,这一平台带来显著竞争优势,能帮助企业在数字化转型中脱颖而出,在激烈的市场竞争中占据有利地位,推动整个行业向更高效、更智能的方向发展。 (阿里通义 | 216点数解答 | 2024-10-30 20:30:51)170
- 含不规则缺陷原材料的最优切割方案建模与损失率、利用率计算(DeepSeek | 2367点数解答 | 2025-05-10 23:47:30)261
- 解析React 15与Vue 2:从O(n^3)到O(n),Diff算法时间复杂度计算及性能对比 (阿里通义 | 379点数解答 | 2023-11-09 01:49:19)332
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)240
- 精准优化:明确需求,开启高效提升之旅! (字节豆包 | 52点数解答 | 2026-02-09 16:44:46)35
- 代码再升级:优化版“获取dump”代码,多机制保障数据读取与保存(字节豆包 | 734点数解答 | 2026-02-10 01:23:31)63
- 代码深度优化:全面检查异常、灵活读取内存,提升可读性与可维护性(字节豆包 | 959点数解答 | 2026-02-10 01:24:14)32
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)66
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)24
- Python 程序:轻松判断输入数字是否为质数(字节豆包 | 151点数解答 | 2024-11-15 10:51:48)194