编写用C++100到500之间素数的个数
时间: 2024-12-12 13:19:22 浏览: 38
编写一个C++程序来计算从100到500之间的素数个数,可以使用埃拉托斯特尼筛法(Sieve of Eratosthenes)。以下是简单的步骤和代码实现:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 判断是否为素数的辅助函数
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;
}
int countPrimes(int start, int end) {
vector<bool> primes(end + 1, true); // 真值表示当前数字可能是素数
primes[0] = primes[1] = false;
for (int i = 2; i * i <= end; ++i) {
if (primes[i]) { // 如果i是素数
for (int j = i * i; j <= end; j += i) {
primes[j] = false; // 将i的所有倍数标记为非素数
}
}
}
int primeCount = 0;
for (int i = start; i <= end; ++i) {
if (primes[i])
primeCount++;
}
return primeCount;
}
int main() {
int start = 100;
int end = 500;
cout << "Number of prime numbers between " << start << " and " << end << " is: " << countPrimes(start, end) << endl;
return 0;
}
```
这个程序首先创建一个布尔向量`primes`,然后从2开始遍历,将所有该数的倍数标记为非素数。最后统计从给定范围内的`start`到`end`之间所有标记为素数的数值个数。
阅读全文
相关推荐


















