int i = 0, j = 0;
for(i = 2; i<=30; i++)
{
for(j = 2; j{
if(i % j == 0)
break;
}
if(j==i)
printf("%d ",i); }
这个循环的结果是30以内的素数,而我感觉f(j==i)这个条件多余.... 我比较菜,请问,这个循环是怎么运行的,越详细越好,谢谢!!
int i = 0, j = 0; for(i = 2; i<=30; i++) { for(j = 2; j<i; j++)
答案:2 悬赏:10 手机版
解决时间 2021-12-31 18:23
- 提问者网友:鐵馬踏冰河
- 2021-12-31 06:09
最佳答案
- 五星知识达人网友:西风乍起
- 2021-12-31 06:59
if(j==i)不是多余的。内循环如果发现j整除i会提前跳出,此情况下j==i不成立;但如果i是素数,则内循环不会中途跳出,到内循环完全结束,此情况下j==i成立。依靠j==i是否成立来判断内循环是否是中途跳出,即i是否素数。
全部回答
- 1楼网友:躲不过心动
- 2021-12-31 07:27
答案是6,开始没看到那个符号,(*^__^*)
循环的话,就定外循环,再定内循环,
第一个,i=0:j=0时,怎么样,j=1时怎么样,j=2时怎么样
i=1:j=0时,怎么样,j=1时怎么样,j=2时怎么样
i=2:j=0时,怎么样,j=1时怎么样,j=2时怎么样
得到:0 1 2
1 2 3
2 3 4
第二个也是同样推出来
0 1 2
1 3 6
2 3 4
而此时i=2,j=2
n[2][2]=6
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯