c++用筛选法求100以内的素数。
时间: 2023-11-22 09:03:49 浏览: 120
用筛选取法求出~之间的所有素数。-C++程序设计_谭浩强(完整版)ppt
以下是使用筛选法求100以内素数的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
const int n = 100;
bool isPrime[n+1]; // 数组记录是否为素数
for(int i=2; i<=n; i++) {
isPrime[i] = true; // 先默认所有数都是素数
}
for(int i=2; i*i<=n; i++) {
if(isPrime[i]) {
// 如果当前数是素数,则将其倍数标记为非素数
for(int j=i*i; j<=n; j+=i) {
isPrime[j] = false;
}
}
}
// 输出所有素数
cout << "100以内的素数:";
for(int i=2; i<=n; i++) {
if(isPrime[i]) {
cout << i << " ";
}
}
cout << endl;
return 0;
}
```
在这个程序中,我们首先创建了一个长度为101的bool类型数组`isPrime`,用于记录每个数是否为素数。初始化时,我们将所有数都默认为素数。然后,我们从2开始遍历到$\sqrt{n}$,如果当前数是素数,则将其倍数都标记为非素数。最后,输出所有素数即可。
阅读全文