c++代码获取从1到10000的所有质数
时间: 2024-10-22 12:15:20 浏览: 36
在C++中,我们可以使用“埃拉托斯特尼筛法”(Sieve of Eratosthenes)来查找从1到10000之间的所有质数。这是一个经典的算法,通过不断地排除合数来找出素数。以下是一个简单的示例代码:
```cpp
#include <iostream>
#include <vector>
// 函数用于检查是否为质数
bool isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) return false;
}
return true;
}
// 主函数生成并打印质数
void findPrimes(int limit) {
std::vector<bool> primes(limit + 1, true); // 初始化一个布尔数组
primes[0] = primes[1] = false; // 0和1不是质数
for (int i = 2; i * i <= limit; ++i) { // 遍历直到sqrt(limit)
if (primes[i]) { // 如果当前元素是质数
for (int j = i * i; j <= limit; j += i) { // 将其倍数标记为非质数
primes[j] = false;
}
}
}
for (int i = 2; i <= limit; ++i) {
if (primes[i]) {
std::cout << i << " ";
}
}
}
int main() {
int limit = 10000;
findPrimes(limit);
return 0;
}
```
当你运行这个程序时,它会输出1到10000之间的所有质数。
阅读全文