编写定义函数bool F(int m),功能是判别素数,要求: 在主函数中输入一个整数,通过调用函数F来判断,若为素数则输出该数,如不是素数,则显示提示信息“该数不是素数”。
时间: 2023-06-14 12:07:32 浏览: 67
以下是实现该功能的代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool F(int m) { // 判断m是否为素数的函数
if(m < 2) return false; // 如果m小于2,直接返回false
for(int i = 2; i <= sqrt(m); i++) { // 从2到sqrt(m)枚举所有可能的因子
if(m % i == 0) return false; // 如果m能被i整除,说明m不是素数,返回false
}
return true; // 如果m不能被任何一个因子整除,说明m是素数,返回true
}
int main() {
int n;
cin >> n;
if(F(n)) { // 如果n是素数
cout << n << endl;
} else { // 如果n不是素数
cout << "该数不是素数" << endl;
}
return 0;
}
```
运行示例:
```
输入:17
输出:17
输入:20
输出:该数不是素数
```
相关问题
用cfree写一个判别素数的函数,在主函数输入一个整数,通过调用该函数进行判别,并输出是否是素数的信息。
好的,以下是使用cfree写的判别素数的函数和主函数:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h> // bool类型需要包含的头文件
bool is_prime(int n);
int main()
{
int n;
printf("请输入一个整数:");
scanf("%d", &n);
if (is_prime(n))
printf("%d是一个素数。\n", n);
else
printf("%d不是一个素数。\n", n);
return 0;
}
bool is_prime(int n)
{
if (n < 2)
return false;
for (int i = 2; i * i <= n; ++i)
{
if (n % i == 0)
return false;
}
return true;
}
```
这个函数使用了一个bool类型的返回值,表示是否为素数。函数内部的实现采用了常见的判断素数的方法,即从2开始循环到n-1,如果有一个数能够整除n,那么n就不是素数。但是,实际上只需要循环到sqrt(n)即可,因为如果存在一个大于sqrt(n)的因子,必然存在一个小于sqrt(n)的因子。
用C++写一个判别素数的函数,在主函数中输入一个整数,输出是否为素数的信息。
以下是用C++编写的判断素数的函数:
```
#include <iostream>
using namespace std;
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i*i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
cout << "请输入一个整数:";
cin >> n;
if (isPrime(n)) {
cout << n << " 是素数。" << endl;
} else {
cout << n << " 不是素数。" << endl;
}
return 0;
}
```
这个函数接受一个整数,然后使用一个for循环遍历从2到n的所有数字,检查是否存在除1和n本身以外的因子。如果存在,则返回false,否则返回true。在主函数中,我们输入一个整数并调用isPrime函数来判断它是否是素数。