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

2025-02-25 15:19:45
推荐回答(2个)
回答1:

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是素数。

回答2:

如果中途break了,i的值就达不到k+1。这只是用来判断每个i都被测试了一遍。不过这样写不如弄个flag标识。可读性差。