Вы создаете статический c массив размером 10^8
, который хранится в стеке. Это слишком велико для стека и, вероятно, вызовет переполнение стека.
Вместо этого используйте vector
, который хранит данные в куче, например:
vector<bool> isPrime(MAX+1);
Вот a demo .
Также обратите внимание, что у вас есть ошибка на одну ошибку, поскольку вы индексируете по индексу MAX
, поэтому вектор должен иметь размер MAX+1
.
Также вам следует избегать using namespace std;
, а также typedefs, таких как ll
, они затрудняют чтение кода.