这句内循环 for (j = 2; j < i / 2; j++) ,求大神 解释一下 ,没看懂
#include <stdio.h>int main()
{
int count = 2; // 已知2和3是素数
int i, j;
_Bool flag = 1;
for (i = 5; i < 10000; i++)
{
for (j = 2; j < i / 2; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag)
{
count++;
}
else
{
flag = 1;
}
}
printf("10000以内共有%d个素数!\n", count);
return 0;
} 诶 这个帖居然删不掉,我貌似已经搞懂了{:10_249:}{:10_249:} 懂了好,看看还能得分不 改进一下: for(int j=2;j<=sqrt(i);j++) 。。。 你懂了?
自己弄懂是最好的 {:10_257:}哦吼 能得分? 这代码谁写的?他可能搞错了。不是i/2,而是根号i。意思是,只需要除到开根,余数不为0就可以判定为素数了。不是除以2。当然,也可以除以2,电脑多做些功而已。还有更厉害的,直接除到i本身。 chxchxkkk 发表于 2020-6-11 23:41
懂了好,看看还能得分不
必须滴, 不差分 soupman 发表于 2020-6-12 00:02
改进一下: for(int j=2;j
棒诶 魏睿超 发表于 2020-6-12 07:59
。。。
{:5_97:} 魏睿超 发表于 2020-6-12 08:00
你懂了?
懂了懂了 梦想灬远帆 发表于 2020-6-12 09:53
自己弄懂是最好的
自己弄懂 快乐无穷
页:
[1]