写一个C++代码,使其能够输出1到100以内的所有素数
时间: 2024-10-16 13:22:15 浏览: 104
在C++中,我们可以编写一个简单的程序来找出1到100范围内的所有素数。这里是一个经典的“埃拉托斯特尼筛法”的实现:
```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 printPrimes(int n) {
std::vector<bool> primes(n + 1, true); // 初始化所有数字为素数
primes[0] = primes[1] = false; // 0和1不是素数
for (int i = 2; i * i <= n; i++) {
if (primes[i]) { // 如果i是素数
for (int j = i * i; j <= n; j += i) {
primes[j] = false; // 将i的所有倍数标记为非素数
}
}
}
for (int i = 2; i <= n; i++) {
if (primes[i])
std::cout << i << " ";
}
std::cout << "\n";
}
int main() {
int limit = 100;
printPrimes(limit);
return 0;
}
```
这个程序首先创建了一个布尔数组`primes[]`来跟踪每个数字是否是素数,然后使用循环和条件判断找出并删除所有的合数(非素数)。最后打印出所有剩余的素数。
阅读全文