C语言实现:求n以内最大k个素数及其和的巧妙解法
```c #include <stdio.h> #include <stdbool.h> // 判断一个数是否为素数 bool isPrime(int num) { if (num < 2) return false; for (int i = 2; i * i <= num; i++) { if (num % i == 0) return false; } return true; } int main() { int n, k; scanf("%d %d", &n, &k); int primes[10] = {0}; int primeCount = 0; int sum = 0; // 从n开始递减寻找素数 for (int i = n; i >= 2 && primeCount < k; i--) { if (isPrime(i)) { primes[primeCount] = i; sum += i; primeCount++; } } // 输出结果 for (int i = 0; i < primeCount; i++) { if (i > 0) printf("+"); printf("%d", primes[i]); } printf("=%d\n", sum); return 0; } ``` 代码解释: 1. `isPrime`函数:用于判断一个数是否为素数。对于小于2的数,直接返回`false`;对于大于等于2的数,检查从2到该数平方根之间是否有能整除它的数,如果有则不是素数,返回`false`,否则返回`true`。 2. `main`函数: - 读取输入的`n`和`k`。 - 定义一个数组`primes`用于存储找到的素数,`primeCount`用于记录找到的素数个数,`sum`用于记录素数的和。 - 从`n`开始递减遍历到2,对于每个数调用`isPrime`函数判断是否为素数,如果是则将其存入`primes`数组,更新`sum`和`primeCount`,直到找到`k`个素数或者遍历完所有数。 - 输出找到的素数和它们的和,素数之间用`+`连接。 ######[AI问答 | 512点数解答 | 2025-12-10 20:56:14]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)352
- 高考毕业晚会难题:从学生能力值求最大默契程度的Python解法(字节豆包 | 487点数解答 | 2026-01-24 13:10:18)46
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)323
- C++实现:输入整数英文单词算乘积,输出数字与英文结果,可多次计算!(GPT | 2268点数解答 | 2024-05-24 01:55:27)391
- 洛谷:根据邮件重量与加急情况精准计算邮费(字节豆包 | 88点数解答 | 2024-11-09 15:33:30)412
- Python实现:根据邮件重量与加急选择精准计算邮费(阿里通义 | 554点数解答 | 2024-11-09 15:34:05)416
- 邮件邮费计算:依据重量与加急要求输出邮费(GPT | 45点数解答 | 2024-12-16 22:26:01)368
- 邮件重量与加急选择决定邮费,附计算规则及示例(GPT | 38点数解答 | 2024-12-16 22:27:37)289
- Python 实现:根据重量与加急选项精准计算邮费及输入合法性处理(字节豆包 | 244点数解答 | 2024-12-31 19:36:29)314
- C语言:实现整数分解,偶数拆素数、奇数有提示!(字节豆包 | 390点数解答 | 2024-10-13 23:02:27)253
- C 语言:实现整数分解,偶数拆素数、奇数特殊输出!(字节豆包 | 307点数解答 | 2024-10-13 23:05:41)235
- C 语言实现:输入正整数,偶数分解为素数对,奇数输出提示,0 结束程序(字节豆包 | 395点数解答 | 2024-10-13 23:06:39)180