ошибка времени выполнения (NZEC) Java SPOJ

Я пытаюсь решить задачу SPOJ под названием Prime Generator. Хотя вывод работает на моем компьютере, он не работает, когда я пытаюсь запустить его на SPOJ. Появляется следующее сообщение об ошибке.

Ошибка: ошибка выполнения (NZEC)

Можете ли вы помочь мне найти, что это такое?

import java.util.BitSet;
import java.util.Scanner;


class Prime_generator {


public static void main(String[] args) {
    Scanner input=new Scanner(System.in);

    int number_of_entries=input.nextInt();
    int [] entries=new int[number_of_entries*2];

    for(int i=0;i<number_of_entries*2;i++){
        entries[i]=input.nextInt();
    }


    BitSet bits=new BitSet(1000000002);

    bits.set(0, 1000000000);
    bits.set(0,false);
    bits.set(1,false);
    for(int i=2;i<=Math.sqrt(1000000001);i++){

        if(bits.get(i)){

            for(int j=2;j*i<=100000000;j++){

            bits.set(j*i, false);

                }
        }

    }   

    int i=0;

    int starting_index=0;
    int ending_index=0;

    int array_index=0;
    while(i<number_of_entries){

        starting_index=entries[array_index];
        ending_index=entries[array_index+1];
        array_index+=2;
        for(int k=starting_index;k<=ending_index;k++){
            if(bits.get(k)){

                System.out.println(k);
            }

        }
        System.out.println();
        i++;
    }


    System.exit(0);


}

}


person The Bear    schedule 04.03.2014    source источник
comment
возможно, он работает слишком долго, поэтому таймер истекает, и поэтому ваш код не возвращает 0.   -  person rjv    schedule 04.03.2014
comment
он прошел в отведенное время   -  person The Bear    schedule 04.03.2014
comment
@ user35265 вы не можете назначить большое число, например 10 ^ 9 ..   -  person sp1rs    schedule 08.03.2014
comment
К какой части вы имеете ввиду?   -  person The Bear    schedule 08.03.2014


Ответы (1)


Некоторые моменты, которые необходимо отметить:

  • Вы должны использовать быстрый ввод-вывод, т. е. BufferedReader и BufferedWriter вместо Сканер (посмотрите на эту запись в блоге).
  • Предварительно обработайте простые числа перед чтением входных данных (иначе вам пришлось бы предварительно вычислять полное решение несколько раз).
  • Не забудьте закрыть входные потоки перед выходом из метода main. Это позволяет избежать предупреждения об утечке ресурсов.
person marcelovca90    schedule 21.01.2016