r是一个标志。n%i==0成立,n就不是素数,然后break,令标志r改为1.
“!r”是逻辑非,如果r为假(0),其结果就为真(1),如果r为真(非0),其结果就为假(0)。所以一开始给r赋值0,是为了下面做铺垫。。
if(n%i==0) //判断是否为素数
{
r=1; //如果n%i==0为真,则给r赋值1
break;//终止循环
}
for和while基本可以互换,但要注意用法,下面是for改while,区别自己参悟吧。。
程序代码:
#include<stdio.h> int main(void) { int n,i,r=0; printf("请输入大于3一个正整数:"); scanf("%d",&n); i=2; while(i<n) {if(n%i==0) { r=1; break; } i++; } if(!r) printf("%d是素数。\n",n); else printf("%d不是素数。\n",n); }
[ 本帖最后由 weipeng1217 于 2012-1-17 16:16 编辑 ]