输入一个数,判断是否为素数。
#include <stdio.h>
#include <math.h>
int main()
{
int num;
int t=2;
printf("Please input a number:\n");
while(scanf("%d",&num)==1)
{
float m=sqrt(num);
if(num<=0)
printf("Please input a number:\n");
else
{
while(t<=m)
{
if(num%t==0)
{
printf("%d is not a prime number.\n",num);
break;
}
t++;
}
if(t>m)
printf("%d is a prime number.\n",num);
}
printf("Please input a number:\n");
t=2;
}
return 0;
}
注意点:每次循环结束时,一定要把 t 初始化为2,不然将导致下一个输入的num 不能从2开始除。因为上一个循环中 的t++;语句使 t 的值发生改变并保存。
while(t<=m)表达式中=不能少,例如,当num等于9时,m=sqrt(9)=3,t=2时,9%2!==0;t++为3,
3<=3,打印3不是素数。
break;语句,一旦if(num%t==0)成立,立即退出内部while循环。