C++实现找出100-200之间的素数
时间: 2024-09-29 19:05:15 浏览: 18
在C++中,我们可以使用循环和条件判断来找出100到200之间的素数。素数是指只有1和自身两个正因数的大于1的自然数。下面是一个简单的示例程序:
```cpp
#include <iostream>
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 main() {
int start = 100, end = 200;
cout << "素数列表 (100-200):" << endl;
for (int i = start; i <= end; ++i) {
if (isPrime(i))
cout << i << " ";
}
cout << endl;
return 0;
}
```
这个程序首先定义了一个`isPrime`函数,用于检查给定的数字是否是素数。然后在主函数中,我们遍历从100到200的所有整数,并利用`isPrime`函数筛选出素数。
相关问题
C++实现找出100-200之间的素数简化
在C++中,我们可以利用埃拉托斯特尼筛法(Sieve of Eratosthenes)简化找出100到200之间的素数。这是一个古老的算法,用于寻找所有小于给定数的质数。下面是简单的实现步骤:
```cpp
#include <iostream>
#include <vector>
std::vector<int> findPrimes(int start, int end) {
std::vector<bool> isPrime(end + 1, true);
isPrime[0] = isPrime[1] = false; // 0和1不是素数
for (int i = 2; i * i <= end; ++i) {
if (isPrime[i]) {
for (int j = i * i; j <= end; j += i) {
isPrime[j] = false;
}
}
}
std::vector<int> primes;
for (int i = start; i <= end && isPrime[i]; ++i) {
primes.push_back(i);
}
return primes;
}
int main() {
int rangeStart = 100;
int rangeEnd = 200;
auto primeList = findPrimes(rangeStart, rangeEnd);
std::cout << "素数列表: ";
for (const auto& prime : primeList) {
std::cout << prime << " ";
}
c++/找出200-300之间所有的素数
在C++中,找出200到300之间的所有素数,可以使用经典的埃拉托斯特尼筛法(Sieve of Eratosthenes)来实现。这个算法的基本思想是从最小的质数开始,将其倍数标记为合数,然后继续寻找下一个未被标记的数,直到找到范围内的最大质数。
以下是C++代码片段:
```cpp
#include <iostream>
#include <vector>
void findPrimes(int start, int end) {
std::vector<bool> isPrime(end+1, true); // 创建一个布尔数组,初始化所有数为真
isPrime[0] = isPrime[1] = false; // 0和1不是质数
for (int i = 2; i*i <= end; i++) { // 只需检查到sqrt(end)
if (isPrime[i]) {
// 将i的所有倍数标记为合数
for (int j = i * i; j <= end; j += i)
isPrime[j] = false;
}
}
for (int i = start; i <= end; ++i) {
if (isPrime[i])
std::cout << i << " ";
}
}
int main() {
findPrimes(200, 300);
return 0;
}
```
当你运行这个程序,它将打印出200到300之间的所有素数。