В коде используется Решето Эратосфена (при аргументе n <= 1.000.000 все работает нормально:
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
void fff(int n) {
int s[n+1], j = 0;
s[1] = 0;
for (int i = 2; i <= n; i++) {
s[i] = 1;
}
for (int i = 2; i * i <= n; i++) {
if (s[i] == 1) {
for (int l = i * i; l <= n; l += i) {
s[l] = 0;
}
}
}
for (int i = 2; i <= n; i++) {
if (s[i] == 1) {
cout << i << " ";
j++;
}
}
cout << endl;
cout << j;
}
int main() {
fff(1000000);
return 0;
}
Вывод программы:
2 3 5 7 ...
78498
Process finished with exit code 0
Но при n >= 10.000.000 программа ничего не выводит кроме:
Process finished with exit code 11
В чем проблема?