甪直惠慈医院:C程序求素数问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/25 20:48:18
#include<math.h>
main()
{
int m,k,i,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1){printf("%d",m);n=n+1;}
if(n%10==0)printf("\n");
}
printf("\n");
getch();
}

上面程序我始终看不太明白,

if(m%i==0)break;
if(i>=k+1){printf("%d",m);n=n+1;}
这两行不明白:break以后,是不是就停止了for(i=2;i<=k;i++)这个循环了?然后是不是应该执行倒数第三行的printf("\n");了。

对于程序第二个for与其下面的三个if、一个break的关系我搞不太明白,能否讲解一下。谢谢。

break中止循环。并且程序会转到跟在循环候的第一个命令处开始执行。。if就是如果的意思。。如果M除I的余数为0他就中止循环。,