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

用筛数法输出100以内素数并统计个数的C++程序实现

😃### 代码实现 ```cpp #include <iostream> #include <vector> int main() { std::vector<bool> isPrime(101, true); isPrime[0] = isPrime[1] = false; for (int i = 2; i * i <= 100; ++i) { if (isPrime[i]) { for (int j = i * i; j <= 100; j += i) { isPrime[j] = false; } } } int primeCount = 0; for (int i = 2; i <= 100; ++i) { if (isPrime[i]) { std::cout << i << " "; primeCount++; } } std::cout << std::endl; std::cout << primeCount << std::endl; return 0; } ``` ### 代码解释 - 创建 `isPrime` 布尔型向量,初始长度为 101 且元素都为 `true`,表示假设所有数都是素数。 - 把 `isPrime[0]` 和 `isPrime[1]` 设为 `false`,因为 0 和 1 不是素数。 - 用外层 `for` 循环从 2 开始,只要 `i * i` 小于等于 100 就继续。若 `isPrime[i]` 为 `true`,则说明 `i` 是素数,进入内层 `for` 循环,从 `i * i` 开始,以 `i` 为步长,将 `isPrime[j]` 设为 `false`,标记为非素数。 - 再次遍历 2 到 100 的数,若 `isPrime[i]` 为 `true`,输出该数并让 `primeCount` 加 1。 - 最后换行输出素数的个数。 ######[AI问答 | 482点数解答 | 2026-06-16 20:14:44]

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