C++问题,谁能给我解释一下!

来源:百度知道 编辑:UC知道 时间:2024/07/02 22:43:01
#include<iostream.h>
#include<math.h>
void main()
{
int i,m,k,n;
for(m=2;m<=500;m=m+1)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
{
cout<<m<<" ";
n++;
}
if(n%5==0)cout<<endl;
}
}

#include<iostream.h>
#include<math.h>
void main()
{
int i,m,k,n;

// 求2到500内的质数,开始循环
for(m=2;m<=500;m=m+1)
{
k=sqrt(m);

// 内层循环,看m是否能被i整除,判断当前数是否是质数
// 只需从2开始判断,到根号m结束
// 如果发现m能被此区间的任意整数整除,则证明m不是质数,跳出
for(i=2;i<=k;i++)
if(m%i==0)
break;

// 循环正常结束时候,i必定是大于等于k+1
// 此时证明找不到数整除m,m是质数,输出到屏幕
if(i>=k+1)
{
cout<<m<<" ";
n++;
}

// n用于计数,每输出5个换个行
if(n%5==0)cout<<endl;
}
}