C编程请教高手......

来源:百度知道 编辑:UC知道 时间:2024/06/30 23:43:55
请高手帮我写出下面求100到200之间的全部素数的每一步执行的含义为什么要这要做?谢谢...
#include<stdio.h>
#include<math.h>
void main()
{
int m,k,i,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{
printf("%d ",m);
n=n+1;
}
if(n%10==0)
printf("\n");
}
printf("\n");
}
判断素数。只要确定2到根式不能被整除就可以了?是什么意思请详细一点我刚学呵呵~。。。。

#include<stdio.h>
#include<math.h>
void main()
{
int m,k,i,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);//这个求根式
for(i=2;i<=k;i++)//在C里,判断素数。只要确定2到根式不能被整除就可以了
if(m%i==0)//如果能被整除就跳出,说明不是素数
break;
if(i>=k+1)//因为你上面i=k+1才跳出循环,所以这里的i=k+1,就是判断。不能被所有2到他本身根式整除,也就是素数 。改成i==k+1也是可以的
{
printf("%d ",m);
n=n+1;//控制换行的
}
if(n%10==0)//控制换行,输出十个数就换行
printf("\n");
}
printf("\n");

}

这是一个数学规律。
当然你也可以用一般的方法。一直从2除到m-1.也是可以的