
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;
} 展开
{
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;
} 展开
2个回答
展开全部
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是素数。
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是素数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询