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

C++ 筛数法实现输出 100 以内素数及个数统计

以下是使用 C++ 实现筛数法输出 100 以内所有素数并统计个数的代码: ```cpp #include <iostream> #include <vector> int main() { const int n = 100; // 创建一个布尔类型的向量,初始值都为 true std::vector<bool> isPrime(n + 1, true); // 0 和 1 不是素数 isPrime[0] = isPrime[1] = false; // 筛数法核心部分 for (int i = 2; i * i <= n; ++i) { if (isPrime[i]) { for (int j = i * i; j <= n; j += i) { isPrime[j] = false; } } } int count = 0; // 输出素数 for (int i = 2; i <= n; ++i) { if (isPrime[i]) { std::cout << i << " "; ++count; } } std::cout << std::endl; // 输出素数个数 std::cout << count << std::endl; return 0; } ``` ### 代码解释 1. **初始化布尔数组**:创建一个布尔类型的向量 `isPrime`,大小为 `n + 1`,初始值都为 `true`,表示假设所有数都是素数。将 `isPrime[0]` 和 `isPrime[1]` 设为 `false`,因为 0 和 1 不是素数。 2. **筛数法核心**:从 2 开始,对于每个素数 `i`,将其倍数 `j`(从 `i * i` 开始)标记为非素数。 3. **输出素数并统计个数**:遍历 `isPrime` 数组,输出所有值为 `true` 的下标,并统计素数的个数。 ######[AI问答 | 484点数解答 | 2026-06-15 20:36:31]

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