编写c++程序求从2开始的连续100个素数
时间: 2024-10-14 22:14:30 浏览: 41
C++初学者之根据输入的任何一个正整数,输出可能被表示的连续正整数
5星 · 资源好评率100%
在C++中编写一个程序来找出从2开始的连续100个素数,可以采用埃拉托斯特尼筛法(Sieve of Eratosthenes)。这是一种简单而高效的方法,用于找到所有小于给定数值n的质数。以下是简单的步骤:
```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;
}
// 寻找连续素数的主函数
std::vector<int> findPrimes(int n) {
std::vector<bool> primes(n+1, true); // 初始化标记数组,所有数默认为素数
primes[0] = primes[1] = false; // 0和1不是素数
int count = 0;
for (int i = 2; i <= n && count < 100; ++i) { // 只查找前100个素数
if (primes[i]) {
std::cout << i << " "; // 打印素数
count++;
// 标记其后的非素数
for (int j = i*i; j <= n; j += i)
primes[j] = false;
}
}
return primes;
}
int main() {
int limit = 200; // 设置查找范围,这里为了找到连续100个素数,范围应大于100的平方根
std::vector<int> primes = findPrimes(limit);
std::cout << "\n";
return 0;
}
```
阅读全文