所谓素数是指这个数只能被1和自身整除。要求在主函数输入一个数, 调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如: 从键盘输入5,5是素数则打印如下信息:"5 is a prime number". 又如:从键盘输入4, 4不是素数则打印如下信息:"4 is not a prime number" 负数、0和1都是不合法的数据。对输入的数据要考虑数据的合法性,不满足条件的数 要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序 不给分。Fun()函数原型如下: int Fun(int m); **输入数据提示信息:"Please input a number:\n" 注:该提示信息请放在循环体外 **输入数据格式为:"%d" **输出格式要求: 若是素数输出数据格式为:"%d is a prime number\n" 若不是素数输出数据格式为: "%d is not a p
时间: 2024-02-05 10:14:07 浏览: 74
下面是一个符合要求的程序:
```
#include <stdio.h>
int Fun(int m);
int main()
{
int num;
printf("Please input a number:\n");
while (scanf("%d", &num) != 1 || num < 2) {
printf("Invalid input. Please input a positive integer greater than or equal to 2:\n");
while (getchar() != '\n'); // 跳过无效输入
}
if (Fun(num)) {
printf("%d is a prime number\n", num);
} else {
printf("%d is not a prime number\n", num);
}
return 0;
}
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;
}
```
程序的思路是先在主函数中读入一个大于等于2的正整数,如果输入的数据不合法,则要求重新输入。然后调用Fun函数判断该数是否为素数,并根据判断结果输出相应的信息。
在Fun函数中,我们从2开始枚举到sqrt(m)(即m的平方根,因为如果一个数有因子大于sqrt(m),那么它一定有一个小于sqrt(m)的因子),如果找到了m的因子,就说明m不是素数,返回0;否则说明m是素数,返回1。注意如果m小于2,则不能被视为素数。
阅读全文