话不多说直接上代码:
#include <stdio.h>
int Fun(int m); //函数原型声明
int main()
{
int m, flag;
printf("Please input a number:\n");
do
{
scanf_s("%d", &m); //检验数据合法性
} while (m < 2);
flag = Fun(m); //函数调用,并且获得返回值
if (flag) //通过返回值判断是否为素数
printf("%d is a prime number\n", m);
else
printf("%d is not a prime number\n", m);
return 0;
}
int Fun(int m) //函数定义
{
int i, flag = 1;
for (i = 2; i < m; i++)
{
if (m % i == 0)
{
flag = 0;
break;
}
}
return flag;
}
测试案例:
关键在于检验数据合法性和素数的判断,利用do-while语句,因为它无论条件是什么都会先执行一次,而for语句与while语句都是要符合条件才会执行。
———————————————————————————————————————————
注:编者水平有限,若有错误欢迎指正,或者有更好的解决办法欢迎提出讨论