求素数的问题,数组开的够大啊,可是运行会爆掉,怎么回事啊

 #include<iostream>
#include<ctime>
using namespace std;
int main()
{
    clock_t start,finish;
    start=clock();
    int temp;
    int i,j,k,p=0;
    bool a[100001];
    /*int b[30000];*/
    for( i=0;2*i+3<=10000;i++)
         a[i]=true;
    for(j=0;j<i;j++)
    {
        if(a[j])
        {
           cout<<2*j+3<<endl;
            for(k=j*(2*j+6)+3;k<i;k+=(2*j+3))
               a[k]=false;
        }
    }
    finish=clock();
    cout<<(double)(finish-start)/CLOCKS_PER_SEC;
  /* for(int s=0;s<p;s++)
   cout<<b[s]<<endl;*/
    return 0;
}

素数判断算法

这组代码是要干什么的,我也不懂!

应该是堆栈溢出了,定义数组不能太大的。记得 VS 系列的默认值是 65536,比这个数值大,程序直接崩溃。

什么错误,如果数组大到没有足够空间存放,就会出错,或者访问数组越界

应该是求得的素数太大,超过了int型最大

程序蹦的时候,点重试,然后看看代码断在了哪一行

我求的是10 0000内的所有素数,就一个bool数组,开了10 0000,不大吧,我也试过开10 0000的一半多一点的