以下是代码
问题的原因是:用最大值质数只显示到149717
导致四个只对两个
#include<bits/stdc++.h>
using namespace std;
unsigned long int a[50000000];
int main(){
unsigned long int i,s,k;
unsigned long int p=0;
cin>>k;
bool d;
for(s=2;s<=k;s++)
{
d=0;
for(i=1;i<=p;i++)
{
if(s==2)
{
break;
}
if(s%(a[i])==0)
{
d=1;
break;
}
}
if(d==0)
{
cout<<right<<setw(8)<<s;
a[p+1]=s;
p++;
}
}
return 0;
}