想要求出40以内的质数,但是出错了 输出为2 3 0 0
#include
using namespace std;
int main()
{
int check=1,i=0;
int prime[1000]={2};
for(int j=3;j<40;j++)
{
for(int k=2;kif(j%k==0)
{
check=0;
break;
}
}
if(check==1)
{
prime[i+1]=j;
i++;
}
}
for(int k1=0;k1<40;k1++)
{
cout<
这个是在哪里错了
内层循环开始前,要将check设置为1
对i的使用也不当。
#include <iostream>
using namespace std;
int main()
{
int check=1,i=1;
int prime[1000]={2};
for(int j=3;j<40;j++)
{
check = 1;
for(int k=2;k<j;k++)
{
if(j%k==0)
{
check=0;
break;
}
}
if(check==1)
{
prime[i]=j;
i++;
}
}
for(int k1=0;k1<i;k1++)
{
cout<<prime[k1]<<endl;
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int check, i=1;
int prime[1000]={2};
for(int j=3; j < 40; j++)
{
check = 1;
for(int k=2; k<j; k++)
{
if(j % k == 0)
{
check=0;
}
}
if(check == 1)
{
prime[i] = j;
i++;
}
}
for(int k1=0; k1<i; k1++)
{
cout<<prime[k1]<<endl;
}
return 0;
}