酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

C语言筛法求100以内素数完整代码实现

这是一个经典的筛法求素数问题。下面是用C语言实现的程序,并附带详细注释。 ### 🔍 程序实现 ```c #include <stdio.h> #include <stdbool.h> #include <math.h> #define MAX 100 int main() { // 初始化标记数组,默认所有数为素数 bool isPrime[MAX + 1]; for (int i = 0; i <= MAX; i++) { isPrime[i] = true; } // 0和1不是素数 isPrime[0] = false; isPrime[1] = false; // 埃拉托斯特尼筛法(Sieve of Eratosthenes) for (int i = 2; i <= sqrt(MAX); i++) { if (isPrime[i]) { // 从i的平方开始标记,避免重复标记 for (int j = i * i; j <= MAX; j += i) { isPrime[j] = false; } } } // 输出素数并统计个数 int count = 0; for (int i = 2; i <= MAX; i++) { if (isPrime[i]) { printf("%d ", i); count++; } } printf("\n%d\n", count); return 0; } ``` ### 📊 代码说明 - **标记数组**:使用布尔数组 `isPrime` 记录每个数是否为素数 - **筛法核心**:从2开始,将每个素数的倍数标记为非素数 - **优化处理**:从 `i * i` 开始标记,减少重复操作 - **结果输出**:先按序输出素数,再单独输出素数个数 ### ✅ 验证结果 程序输出与样例完全一致: ``` 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 25 ``` ######[AI问答 | 464点数解答 | 2026-06-15 20:34:29]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]