用c++寫出埃拉托色尼筛法,要用using namespace std;
时间: 2023-11-19 12:13:37 浏览: 82
好的,以下是使用 C++ 编写的埃拉托色尼筛法:
```
#include <iostream>
using namespace std;
void sieveOfEratosthenes(int n) {
// 创建一个布尔数组,标记每个数字是否为质数
bool prime[n+1];
memset(prime, true, sizeof(prime));
for (int p=2; p*p<=n; p++) {
// 如果 prime[p] 为 true,那么 p 是质数
if (prime[p] == true) {
// 更新所有 p 的倍数为非质数
for (int i=p*p; i<=n; i += p)
prime[i] = false;
}
}
// 输出所有质数
for (int p=2; p<=n; p++)
if (prime[p])
cout << p << " ";
}
int main() {
int n = 50;
cout << "所有小于等于 " << n << " 的质数是:";
sieveOfEratosthenes(n);
return 0;
}
```
注意,使用 `using namespace std;` 不是一个好的编程习惯。在大型项目中,可能会导致命名冲突和不必要的错误。最好的做法是使用 `std::` 前缀来引用标准库中的函数和对象。
阅读全文