void fun(int m,int k,int xx[])...

来源:百度知道 编辑:UC知道 时间:2024/06/17 20:50:50
该函数是将大于m的k个素数放入一个新的数组中,请问:其中的if(j>=i)一句,为什么会出现j>=i的情况,不是for(j=2;j<i;j++)已经限定了j只能<i么?
void fun(int m,int k,int xx[])
{
int i,j,n;
for(i=m+1,n=0;n<k;i++)
{for(j=2;j<i;j++)
if(i%j==0)break;
if(j>=i)
xx[n++]=i;
}
}

void fun(int m,int k,int xx[])
{
int i,j,n;
for(i=m+1,n=0;n<k;i++)
{for(j=2;j<i;j++) if(i%j==0)break;
if(j>=i) xx[n++]=i;
}
}

for(j=2;j<i;j++)循环不一定执行完毕,遇到i%j==0就会BREAK,所以if(j>=i)就是判断i是否是素数。