小程序 不懂

baiye1134 2010-06-24 10:05:03
#include<stdio.h>
void main()
{int i,n,sum=0;
for(n=101;n<200;n++)
{for(i=2;i<n;i++)
if(n%i==0) break;
if(n<=i)
{
printf(" %d ",n);sum++;}}
printf("%d\n",sum);

}求素数,,为什么,,是n<=i?
...全文
46 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangyafei13 2010-06-24
  • 打赏
  • 举报
回复
.........
huanmie_09 2010-06-24
  • 打赏
  • 举报
回复
改成
if(i >= n)是不是好懂一点?

判断n是否为素数,
i从2开始,依次判断i是否能被i整除,如果能,则跳出for循环, 这时i肯定是小于n的.2到n之间(不包括n)存在能被n整除的数,说明n不是素数;
如果i不能被整除,i自加,如果一直到n-1都不存在能被n整除的数,下一次循环i=n, 条件表达式不成立,循环结束, 此时i >= n成立,说明n为素数.
ningde1987 2010-06-24
  • 打赏
  • 举报
回复
若自己写,可能写成if(i==n); 如果从2到n-1里没有约数,那它就是素数了,此时i=n,所以用判断i==n就行,而此处的n<=i包括了n==i的部分,作者可能还不确定循环后若是素数的i是几,但他觉得肯定至少不比n小了,所以才用的n<=i的。当然这也是我的猜测,仅供参考!

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧