用c++写一个程序,功能:判断m是否为素数,如果m是素数,函数fun返回1,否则返回0
时间: 2023-12-22 18:03:12 浏览: 89
以下是用C++编写的判断素数的函数fun:
```c++
int fun(int m) {
if (m <= 1) { // 小于等于1的数不是素数
return 0;
}
for (int i = 2; i <= sqrt(m); i++) { // 从2到sqrt(m)枚举m的因子
if (m % i == 0) { // 如果找到了一个因子
return 0; // m不是素数
}
}
return 1; // 没有找到因子,m是素数
}
```
这个函数中,首先判断m是否小于等于1,若是,则不是素数。然后从2到sqrt(m)枚举m的因子,如果找到了一个因子,则m不是素数,返回0;否则,说明m是素数,返回1。
相关问题
计算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`函数。
编程:输出 100~300 的素数,使用函数 int fun(int m){…}功能是:如果m是素数返回 1,否则返回 0
下面是一个实现该功能的 C++ 代码:
```cpp
#include <iostream>
using namespace std;
int fun(int m) {
if (m < 2) {
return 0;
}
for (int i = 2; i * i <= m; i++) {
if (m % i == 0) {
return 0;
}
}
return 1;
}
int main() {
for (int i = 100; i <= 300; i++) {
if (fun(i)) {
cout << i << " ";
}
}
cout << endl;
return 0;
}
```
首先定义了一个 `fun` 函数,它的参数是一个整数 `m`,返回值为 1 表示 `m` 是素数,返回值为 0 表示 `m` 不是素数。实现方式是从 2 开始,一直枚举到 $\sqrt{m}$,如果存在一个因子可以整除 `m`,那么 `m` 就不是素数。
然后在 `main` 函数中从 100 到 300 枚举每个整数,如果是素数则输出。
阅读全文