Проблема в том, что время компиляции 1 должно быть меньше 4 секунд, и я не могу получить его менее чем за 5 секунд.
Есть много потенциальных оптимизаций для тестирования простоты.
В настоящее время OP выполняет итерации [2 ... n)
// slow
for ( i = 2 ; i<n ; i++)
if (n%i == 0)
return 0;
Требуется только [2 ... sqrt (n)].
// faster
for ( i = 2; i <= n/i; i++) {
if (n%i == 0) {
return 0;
}
}
Могут существовать другие проблемы, но приведенные выше будут ускорять код.
1 Конечно, проблема времени выполнения здесь.