求1至N之间的所有的素数。 Input 一个数N(1<N<1000000). Output 以空格隔开的素数。 Sample Input 10 Sample Output 2 3 5 7 c++代码
时间: 2024-04-14 08:25:31 浏览: 76
下面是一个用C++编写的代码,用于找到1到N之间的所有素数:
```cpp
#include <iostream>
#include <vector>
std::vector<int> findPrimes(int N) {
std::vector<bool> isPrime(N + 1, true); // 初始化一个布尔数组,用于标记数字是否为素数
std::vector<int> primes; // 用于存储找到的素数
for (int i = 2; i <= N; i++) {
if (isPrime[i]) {
primes.push_back(i); // 将素数存入数组
for (int j = i * i; j <= N; j += i) { // 将当前素数的倍数标记为非素数
isPrime[j] = false;
}
}
}
return primes;
}
int main() {
int N;
std::cin >> N;
std::vector<int> primes = findPrimes(N);
for (int i = 0; i < primes.size(); i++) {
std::cout << primes[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
您可以运行这段代码,输入一个大于1且小于1000000的整数N,它将输出1到N之间的所有素数。在您提供的示例输入中,它将输出`2 3 5 7`。
阅读全文