··C++怎么计算素数和
时间: 2024-10-28 14:16:00 浏览: 10
在 C++ 中,计算素数的传统算法有很多种,其中一种常见的方法是埃拉托斯特尼筛法(Sieve of Eratosthenes),这个算法可以找出一定范围内的所有素数。以下是简单的实现步骤:
```cpp
#include <iostream>
#include <vector>
// 筛选素数函数
std::vector<int> sieveOfEratosthenes(int n) {
std::vector<bool> isPrime(n+1, true); // 初始设定所有数为质数
isPrime[0] = isPrime[1] = false; // 0和1不是质数
for (int i = 2; i * i <= n; ++i) { // 只需要检查到 i 的平方根
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) { // 将 i 的倍数标记为合数
isPrime[j] = false;
}
}
}
std::vector<int> primes; // 存储素数
for (int i = 2; i <= n; ++i) {
if (isPrime[i])
primes.push_back(i);
}
return primes;
}
int main() {
int numPrimes = 100; // 想要查找的前100个素数
std::vector<int> primeNumbers = sieveOfEratosthenes(numPrimes);
for (int prime : primeNumbers) {
std::cout << prime << " ";
}
return 0;
}
```
在这个例子中,`sieveOfEratosthenes` 函数会返回指定范围内所有的素数。如果你想让用户输入一个值,可以在 `main` 函数中获取用户的输入,然后传递给 `sieveOfEratosthenes`。
阅读全文