关于c++素数程序

来源:百度知道 编辑:UC知道 时间:2024/05/19 06:55:26
找出100-200之间的素数,下面是小弟编的程序,运行起来怎么什么都不显示啊,不知道错在哪?谢了,哥们!
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int i,m,k,n=0;
bool prime;
for(i=101;i<=200;i=i+2)
{ prime=true;
m=int(sqrt(i));
for(k=2;k<=m;m=m+1)
{
if (i%k==0) {prime=false;break;}
}

if (prime) {cout<<setw(5)<<i;n=n+1;}
if (n%10==0) cout<<endl;

}
cout<<endl;
return 0;
}

for(k=2;k<=m;m=m+1)
根据你的逻辑,K永远都不可能小于m,陷入死循环。是不是改成:
for(k=2;k<=m;k=k+1)

结果如下:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int i,m,k,n=0;
bool prime;
for(i=101;i<=200;i=i+2)
{
prime=true;
m=int(sqrt(i));
for(k=2;k<=m;k=k+1)
{
if (i%k==0)
{
prime=false;
break;
}
}
if (prime)
{
cout<<setw(5)<<i;
n=n+1;
}
if (n%10==0) cout<<endl;
}
cout<<endl;
return 0;
}

输出:
101 103 107 109 113 127 131 137 139 149
151 157 163 167 173 179 181 191 193 197
199

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
int i,m,k,n=0;
bool pri