求从2开始的前30个素数,并将这些素数打印输出到控制台。 素数定义:一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做素数。C++
时间: 2024-12-18 21:31:11 浏览: 7
判断101-200之间有多少个素数,并输出所有素数。.docx
为了找出并打印从2开始的前30个素数,你可以编写一个C++程序,采用埃拉托斯特尼筛法(Sieve of Eratosthenes)来生成素数。以下是实现这一功能的一个简单版本:
```cpp
#include <iostream>
#include <vector>
bool isPrime(int num) {
if (num <= 1)
return false;
if (num == 2)
return true;
if (num % 2 == 0)
return false;
for (int i = 3; i * i <= num; i += 2) {
if (num % i == 0)
return false;
}
return true;
}
std::vector<int> generatePrimes(int n) {
std::vector<bool> isComposite(n + 1, false);
std::vector<int> primes;
for (int i = 2; i <= n; ++i) {
if (!isComposite[i]) {
primes.push_back(i); // 素数
for (int j = i * i; j <= n; j += i) {
isComposite[j] = true;
}
}
}
return primes;
}
int main() {
int limit = 30;
std::vector<int> primeList = generatePrimes(limit);
for (const auto &prime : primeList) {
std::cout << prime << " ";
}
std::cout << "\n";
return 0;
}
```
这段程序首先定义了一个辅助函数 `isPrime` 来检查一个数是否为素数,然后使用 `generatePrimes` 函数生成指定范围内的素数。最后,在 `main` 函数中,打印出前30个素数。
运行此程序,你会看到2到30之间的前30个素数被打印出来。
阅读全文