生成一个使用C++程序求解1-100质数的程序
时间: 2024-10-08 11:18:04 浏览: 27
在C++中,我们可以编写一个简单的程序来找出1到100之间的所有质数。下面是一个基本的示例,它使用了埃拉托斯特尼筛法(Sieve of Eratosthenes),这是一种常见的寻找素数的有效算法:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 函数用来标记非质数
void markNonPrimes(vector<bool>& isPrime, int n) {
for (int i = 2; i * i <= n; ++i) {
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i)
isPrime[j] = false;
}
}
}
// 主函数,输出1到100内的质数
void findPrimes(int limit) {
vector<bool> isPrime(limit + 1, true); // 初始化一个布尔数组,假设所有数字都是质数
isPrime[0] = isPrime[1] = false; // 0和1不是质数
markNonPrimes(isPrime, limit);
for (int num = 2; num <= limit; ++num) {
if (isPrime[num])
cout << num << " ";
}
}
int main() {
findPrimes(100);
return 0;
}
```
在这个程序中,`findPrimes`函数首先创建了一个布尔数组`isPrime`,然后通过循环标记出所有合数,最后打印出剩余的质数。当你运行这个程序,它会输出1到100之间的所有质数。
阅读全文