关于求某数是否是素数的C程序。
#include <stdio.h>#include <math.h>
void main()
{
int m,i,k; //定义变量
printf("please input m:"); //提示输入一个m
scanf("%d",&m); //m变量取地址
k=sqrt(m); //给变量k赋值
i=2; //给变量i赋值
while (i<=k) //while 循环表达式
{
if (m%i==0) break; //当m%i==0时 不做任何动作并跳出当前循环(我是这样理解这里的break的)
else //否则 i++
i++;
}
if (i>k) //当i>k时 输出 (...)
printf("%d is a odd\n",m);
else //否则 输出(...)
printf("%d is a even\n",m);
} 老师用的for语句写的,我用的while 语句写的,算法是模仿老师的。大家帮我看看我后面的程序注释部分有没有错,错的地方麻烦大家帮我改正下。 虽然程序写出来了,但有个问题很纠结,为什么i的取值范围是i~k,我想了很久都没想明白。还有我感觉这样做i值的定义写出来的程序很难让人理解(个人感觉,不知道大家是否有同感),我想换个方式,请问可以吗?如果可以,能讲讲你的算法么?如果不可以,那么请你告诉我为什么。