if(j>=i) 的作用是什么啊,看不懂?
voidfun(intm,intk,intxx[]){inti,j,n;for(i=m+1,n=0;n<k;i++)/*找大于m的素数,循环k次,即找出紧靠m的k个素数*...
void fun(int m,int k,int xx[])
{
int i,j,n;
for(i=m+1,n=0;n<k;i++) /*找大于m的素数,循环k次,即找出紧靠m的k个素数*/
{for(j=2;j<i;j++) /*判断一个数是否为素数,如果不是,跳出此循环,判断下一个数*/
if(i%j==0) break;
if(j>=i) /*如果是素数,放入数组xx中*/
xx[n++]=i;
}
} 展开
{
int i,j,n;
for(i=m+1,n=0;n<k;i++) /*找大于m的素数,循环k次,即找出紧靠m的k个素数*/
{for(j=2;j<i;j++) /*判断一个数是否为素数,如果不是,跳出此循环,判断下一个数*/
if(i%j==0) break;
if(j>=i) /*如果是素数,放入数组xx中*/
xx[n++]=i;
}
} 展开
2个回答
展开全部
for(j=2;j<i;j++)
if(i%j==0) break;
因为这个循环有两种情况会跳出。
一是i不是素数,被j整除,break出循环
二是i是素数,j自加到大于等于i,不满足循环条件 j<i,循环结束
有两种情况,所以程序需要进一步通过判断循环结束时,j值的大小来确定i是不是素数,如果是上述第一种情况跳出循环,那么j的值肯定是一个小于i的数,而第二种情况结束循环,那么j就会>=i,只有这种情况,才把素数i放进xx[]数组里。
这就是为什么要多加一个j>=i判断的原因
if(i%j==0) break;
因为这个循环有两种情况会跳出。
一是i不是素数,被j整除,break出循环
二是i是素数,j自加到大于等于i,不满足循环条件 j<i,循环结束
有两种情况,所以程序需要进一步通过判断循环结束时,j值的大小来确定i是不是素数,如果是上述第一种情况跳出循环,那么j的值肯定是一个小于i的数,而第二种情况结束循环,那么j就会>=i,只有这种情况,才把素数i放进xx[]数组里。
这就是为什么要多加一个j>=i判断的原因
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询