谁能告诉我这个代码的运行过程啊?!

img

这是求素数的代码段:m = 101 ,从101一直循环到 200 , m 每次自增 2,也即101 103 105 107 ......200.
k = sqrt(m); 是求出 m 的平方根 ,101 为例, k = 10;
for(i=2;i<=k;i++) if(m%i==0) break; 素数是除 1 和其自身外没有可以整除的因数,这段就是判断从2 到 k = 10 有没有整除的因数。如果有,就break跳出,没有则运行到循环结束。以101 为例,101 % 2--10 != 0 , 所以 当i=11 时,i <=k 条件不满足,退出循环。至于为什么从2开始到某数的平方根值止,就可以判断是否有整除的因数,这纯粹是数学的知识,可以找资料再学习下。
if(i >= k+1) 这句判断因数有否找到,有找到是break的,此时 i 肯定是 < k+1 的。 如果没有找到因数,i 是循环条件退出的,这句判断就成立,所以101就是素数,输出 101 ,同时 n++;自增,为找到的素数的个数计数。
if(n%10==0) printf("\n"); 这句的作用就是,当 n = 10 时,10%10 == 0,输出换行符'\n';找到的十个素数输出后换行,也就是找到的素数以10个为一行排列。
以上步骤从101开始判断循环,一个一个的判断,直至199,199 + 2 时退出循环,整个过程结束。