寻找100~200之间的素数C++
时间: 2024-05-12 17:09:42 浏览: 93
以下是寻找100~200之间的素数的C++代码:
```c++
#include <iostream>
using namespace std;
int main() {
int count = 0;
for (int i = 100; i <= 200; i++) {
bool isPrime = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
cout << i << " ";
count++;
}
}
cout << endl << "共有" << count << "个素数" << endl;
return 0;
}
```
该程序使用两个for循环,外层循环从100到200遍历每个数字,内层循环从2到该数字-1,判断该数字是否能被其他数字整除,如果能,则该数字不是素数,否则该数字是素数。如果该数字是素数,则输出该数字,并将素数计数器加1。最后输出素数的个数。
相关问题
求2~10000之间的素数c++
求2到10000之间的素数,可以使用Sieve of Eratosthenes(埃拉托斯特尼筛法)算法,这是一个经典高效的查找素数的方法。以下是使用C++实现的一个简单版本:
```cpp
#include <iostream>
#include <vector>
// 判断是否为素数函数
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;
}
// 寻找范围内的素数并存储在向量中
std::vector<int> findPrimes(int start, int end) {
std::vector<bool> primes(end + 1, true); // 初始化所有数字为质数假设
primes[0] = primes[1] = false;
for (int i = 2; i * i <= end; i++) {
if (primes[i]) {
for (int j = i * i; j <= end; j += i) {
primes[j] = false;
}
}
}
std::vector<int> result;
for (int i = start; i <= end; i++) {
if (primes[i])
result.push_back(i);
}
return result;
}
int main() {
int limit = 10000;
std::vector<int> primesInRange = findPrimes(2, limit);
for (int prime : primesInRange) {
std::cout << prime << " ";
}
std::cout << "\n";
return 0;
}
```
在这个程序中,`isPrime` 函数用于判断一个数是否为素数,而 `findPrimes` 函数则是利用Sieve of Eratosthenes筛选出指定范围内的素数。在主函数`main`中,我们打印出2到10000之间的所有素数。
计算100~200之间的所有素数之和,判别一个数是否是素数请用给定的函数实现。语言为C++ 函数原型:int fun(int m);说明: 参数:m是要进行判断的数;返回值:若数m是素数,则返回值为1;否则返回值为0。
首先,我们来编写一个`isPrime`函数,用于判断一个数是否是素数。然后,我们将创建一个`sumPrimes`函数,遍历100到200之间的所有整数,并调用`isPrime`函数来筛选出素数,最后计算并返回它们的和。
```cpp
#include <iostream>
// 判断一个数是否是素数的函数
int isPrime(int m) {
if (m <= 1) {
return 0;
}
for (int i = 2; i * i <= m; ++i) {
if (m % i == 0) {
return 0; // 如果能被整除,不是素数
}
}
return 1; // 否则,它是素数
}
// 计算100至200之间所有素数之和的函数
int sumPrimes(int start, int end) {
int sum = 0;
for (int num = start; num <= end; ++num) {
if (isPrime(num)) {
sum += num;
}
}
return sum;
}
int main() {
const int rangeStart = 100;
const int rangeEnd = 200;
int result = sumPrimes(rangeStart, rangeEnd);
std::cout << "The sum of prime numbers between " << rangeStart << " and " << rangeEnd << " is: " << result << std::endl;
return 0;
}
```
在这个程序中,`fun`函数名更改为`sumPrimes`,因为我们实际上是在寻找所有素数的总和而不是单个数的判定。在`main`函数中,我们指定范围100到200作为输入给`sumPrimes`函数。
阅读全文