c语言素数的判断中 if(i>=k+1)有什么用,请教大神说明下,看不懂这句话 10

doublefun(intn){intm,k,i;doubles=0.0;for(m=3;m<=n;m++){k=sqrt(m);for(i=2;i<=k;i++)if(... double fun(int n)
{
int m,k,i;
double s=0.0;
for(m=3;m<=n;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1)
s+=sqrt(m);
}
return s;
}
展开
 我来答
自我编程
2018-04-22 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部
for(i=2;i<=k;i++)
if(m%i==0) break;
if(i>=k+1)
这里的if(i>=k+1)是在for循环之外。由于循环内只要m%i==0成立,就会跳出,那么if(i>=k+1)就不会成立。
所以if(i>=k+1)如果成立,说明整个for循环过程中m%i==0都不成立,m是素数。
阳光的雷咩咩
2016-09-24 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7899万
展开全部
如果中途break了,i的值就达不到k+1。这只是用来判断每个i都被测试了一遍。不过这样写不如弄个flag标识。可读性差。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式