Почему мой код выдает ошибку времени выполнения SIGSEGV? - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь внедрить Сито Эратосфена в этот код.Это кодируется с учетом того, что диапазон может составлять 100000 номеров, при этом верхний верхний предел равен 1000000000. Он-лайн эксперт выдает ошибку времени выполнения SIGSEGV.Пожалуйста помоги.

Я попытался уменьшить размер массива до 100. Он все еще не работал.Я уже переключился между локальными и глобальными переменными

int primes[100000]={0}, t, a, b ,i,j,k,l;
int main()
{
    cin>>t;
    for(i=0;i<t;++i)
    {
        cin>>a>>b;
        if(a!=1)
          j=a;
        else
          j=2;
        for(;j<=b;++j) // loop for number count
          for(k=j*j;k<=b;k+=j) // loop for finding composites
            primes[k-1]=1;  //marking out all non primes
              for(l=a;l<=b;++l)
              {
                if(primes[l-1]==0 && l-1!=0)
                cout<<l<<endl;
              }
    }
}

Он отлично работает в моей системе (я использую Dev C ++ 5.11), но он не будет работать с онлайн-судьями.

...