求100内的所有素数
本人是初学者,一直不太明白编程思想,最近正在努力学习,还望各位高手多多指点,先谢谢大家啦!
本人编的主程序如下:
int main()
{
int n=100,flag=1;
cout<<"0-"<<n<<"的所有素数为:";
for(int j=1;j<=n;j++)
{
if(j==1||j==2)
flag=1;
else
{
int k;
for(int i=2;i<j;i++)
{
k=j%i;
if(k==0)
{
flag=0;
break;
}
}
}
if(flag)
cout<<j<<" ";
}
cout<<endl;
return 0;
}
结果只有1 2 3
不论n值为多少,结果都一样,貌似循环从4开始就不再进行。
麻烦各位高手有空帮我看看,到底哪里出了问题,谢谢各位啦!
[解决办法]
#include <iostream>
using namespace std;
int main()
{
int n=100,flag=1;
cout<<"0-"<<n<<"的所有素数为:";
for(int j=2;j<=n;j++)
{
flag=1;
int k;
for(int i=2;i<j;i++)
{
k=j%i;
if(k==0)
{
flag=0;
break;
}
}
if(flag)
cout<<j<<" ";
}
cout<<endl;
return 0;
}
int main()
{
int n=100,flag=1;
cout<<"0-"<<n<<"的所有素数为:";
for(int j=2;j<=n;j++)
{
int k;
flag=1;
for(int i=2;i<j;i++)
{
if(j%i==0)
{
flag=0;
break;
}
}
if(flag == 1)
cout<<j<<" ";
}
cout<<endl;
return 0;
}
int main()
{
int n=100,flag=1;
cout<<"0-"<<n<<"的所有素数为:";
for(int j=1;j<=n;j++)
{
if(j==1
[解决办法]
j==2)
{
//1和2时,都为1
flag=1;
}
else
{
//默认是存在素数的,只有当判断不为素数时,把Flag去掉
flag = 1;
for(int i=2;i<j;i++)
{
if(0 == j%i)
{
//不为素数时,把Flag去掉
flag=0;
break;
}
}
}
if(flag)
cout<<j<<" ";
}
cout<<endl;
return 0;
}
[解决办法]