输出n以内的所有素数c++
时间: 2024-09-13 19:06:40 浏览: 58
在C++中,可以使用Sieve of Eratosthenes算法来生成小于等于`n`的所有素数。这是一种经典的方法,它通过不断排除合数来找出素数。以下是简单的实现:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// Function to find all prime numbers up to n
void printPrimes(int n) {
vector<bool> isPrime(n + 1, true); // Initialize all numbers as prime
isPrime[0] = isPrime[1] = false; // 0 and 1 are not prime
for (int p = 2; p * p <= n; p++) { // Start from 2, check till square root of n
if (isPrime[p]) {
for (int i = p * p; i <= n; i += p) // Mark multiples of p as non-prime
isPrime[i] = false;
}
}
// Print the prime numbers
for (int p = 2; p <= n; p++)
if (isPrime[p])
cout << p << " ";
}
int main() {
int n;
cout << "Enter a number: ";
cin >> n;
printPrimes(n);
return 0;
}
```
在这个程序中,我们首先创建一个布尔数组`isPrime`,然后从2开始,如果当前数字是素数,则将其倍数标记为非素数。最后,我们遍历数组并打印出那些标记为素数的数字。
阅读全文