C++ 实现:判断正整数是否为质数并输出对应结果
以下是解决该问题的C++代码: ```cpp #include <iostream> using namespace std; // 该函数用于判断一个数是否为质数,并根据情况输出结果 void checkPrime(int n) { // 质数是大于1的自然数 if (n <= 1) { // 若n小于等于1,从2开始找约数 for (int i = 2; i <= n; i++) { if (n % i == 0) { cout << i << endl; return; } } } // 从2开始遍历到该数的平方根 for (int i = 2; i * i <= n; i++) { if (n % i == 0) { // 若能被整除,说明不是质数,输出第二小的约数 cout << i << endl; return; } } // 若没有找到除1和自身以外的约数,说明是质数 cout << "Yes" << endl; } int main() { int n; // 读取输入的正整数 cin >> n; // 调用函数进行判断 checkPrime(n); return 0; } ``` 代码解释: 1. `checkPrime`函数:该函数接收一个整数`n`作为参数,用于判断`n`是否为质数。 - 首先检查`n`是否小于等于1,如果是,则从2开始遍历寻找`n`的约数,找到后输出该约数并返回。 - 然后从2开始遍历到`n`的平方根,如果`n`能被`i`整除,说明`n`不是质数,输出`i`(即第二小的约数)并返回。 - 如果遍历完都没有找到除1和自身以外的约数,说明`n`是质数,输出`Yes`。 2. `main`函数:读取用户输入的正整数`n`,并调用`checkPrime`函数进行判断。 复杂度分析: - 时间复杂度:$O(\sqrt{n})$,因为只需要遍历到$\sqrt{n}$。 - 空间复杂度:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 529点数解答 | 2025-11-22 17:09:28]
- 易语言子程序 TriggerCode 代码详解:通配符查找与结果运算(字节豆包 | 607点数解答 | 2026-02-09 11:59:34)38
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)349
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)319
- 对数知识详解:定义、函数及 C++ 代码实战计算 (字节豆包 | 454点数解答 | 2025-12-10 12:19:55)46
- 用 NumPy 查看二维数组维数、行列数并调整为 2 行 6 列(讯飞星火 | 142点数解答 | 2024-10-12 21:48:05)268
- 用 NumPy 查看二维数组维数、行列数并调整为 2 行 6 列(百度文心 | 451点数解答 | 2024-10-12 21:54:35)272
- Arduino 贪吃蛇代码错误分析、修正及逻辑优化全解析(字节豆包 | 1917点数解答 | 2025-07-23 14:49:18)164
- 蛇形游戏代码问题分析、修正及优化建议(字节豆包 | 1329点数解答 | 2025-07-23 15:07:45)179
- Python 实现:输入整数 N 判断是否为质数,附代码详解!(DeepSeek | 126点数解答 | 2026-01-11 17:32:14)36
- Python 程序:轻松判断输入数字是否为质数(字节豆包 | 151点数解答 | 2024-11-15 10:51:48)196
- Python 实现:轻松判断输入数字是否为质数(阿里通义 | 352点数解答 | 2024-11-15 11:06:22)167
- Python 破解:求大于 2 偶数对应最小质数对差值的秘籍(字节豆包 | 517点数解答 | 2025-12-06 21:03:18)71