c++打印 100~200之间的素数。素数:只能被1和它本身整除。
时间: 2024-10-08 20:04:01 浏览: 35
利用c++语言来输出1-100之间的所有素数.rar
在C++中,我们可以编写一个简单的程序来打印100到200之间的所有素数。这里我们使用埃拉托斯特尼筛法(Sieve of Eratosthenes),这是一种找出一定范围内所有素数的经典算法。
```cpp
#include <iostream>
#include <vector>
bool isPrime(int num) {
if (num <= 1) return false;
if (num == 2 || num == 3) return true;
if (num % 2 == 0 || num % 3 == 0) return false;
for (int i = 5; i * i <= num; i += 6) {
if (num % i == 0 || num % (i + 2) == 0)
return false;
}
return true;
}
void printPrimesInRange(int start, int end) {
std::vector<bool> primes(end + 1, true); // 初始化一个布尔数组
primes[0] = primes[1] = false; // 0和1不是素数
for (int p = 2; p * p <= end; p++) {
if (primes[p]) {
for (int i = p * p; i <= end; i += p)
primes[i] = false; // 根据质因子p将非质数标记
}
}
for (int num = start; num <= end; num++) {
if (isPrime(num))
std::cout << num << " ";
}
}
int main() {
printPrimesInRange(100, 200);
return 0;
}
```
当你运行这段代码时,它会打印出100到200之间的所有素数。
阅读全文