当我想要大于 1000000 的素数时,以下素数生成器代码显示错误。为什么?起初它似乎发生在 b'cuz of int 所以我把它改成 long 但错误仍然存在....从技术上讲它是一个错误程序运行后显示消息“primegen.exe 已停止工作”
#include <iostream>
using namespace std;
int main()
{
long int a,c,k,d;
k=0;
cin>>a;
cin>>d;
long int b[a];
b[a-1]=0;
for(long int i=2;i<=a;i++)
{
for(long int j=2;j<=(i/2);j++)
{
c=1;
if ( i%j!=0 )
{
continue;
}
else
{
c=0;
break;
}
}
if (c!=0)
{
b[k]=i;
//++k;
}
else b[k]=0;
++k;
}
for(long int i=d;i<a;i++)
{
if (b[i]!=0)
{
cout<<b[i]<<"\t";
}
}
cin.ignore();
cin.get();
return 0;
}