找出100~200间的全部素数 C++

#include<iostream.h>
#include<iomanip.h>
#include<math.h>
int main(){
int m,n,i,k;
bool prime;
for(m=101;m<200;m++){
k=int(sqrt(m));
for(i=2;i<=k;i++)
if(m%i==0)
{
prime=false;
break;

}
else
{prime=true;
cout<<setw(5)<<m;
n=n+1;
}

if(n%10==0)
cout<<endl;

}
cout<<endl;
return 0;

}

为什么结果是这样的?新手求指导

#include<iostream>
#include<iomanip>
#include<math.h>

using namespace std;

int main()
{
    int  m,n = 0,i,k;
    bool prime;
    for(m=101;m<200;m++){
        k=int(sqrt(m));
        //假设是素数
        prime = true;
        for(i=2;i<=k;i++)
            if(m%i==0)
            {
                prime=false;//标记不是素数
                break;
            }
            /*else
            {
                prime=true;
                cout<<setw(5)<<m;
                n=n+1;
            }*/
        if(prime){//退出for(i=2; i <= k; ++i)后执行,如果是素数输出
            cout<<setw(5)<<m;
            n = n + 1;
            if(n%10==0)//如果有十个素数了就输出换行
                cout<<endl;
        }
    }
    cout<<endl;
    return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答