#include<math.h> main() { int m,i,k; scanf("%d",&m); k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break;

2025-02-25 07:48:38
推荐回答(3个)
回答1:

for(i=2;i<=k;i++) //循环用m除以2到k,如果有能被整除的则跳出循环,否则一直到i<=k不满足。

if(m%i==0)break;

这时如果找到了一个数能整除,则i的值肯定<=k
如果没有找到,则i= k+1; 不满足i<=k时的值。
所以后面用if(i>=k+1) 判断它是一个素数
用else判断它不是一个素数

回答2:

如果输入4这时i=2,k=2 则i<=k ,输入3,这时i=2,k=1.732,则i>k所以i>k时m一定是素数

回答3:

单步调试 跟踪跳出for循环时i的值