Я реализовал генератор сит. Код довольно быстрый и потребляет меньше памяти. https://www.spoj.com/problems/PRIME1/
Но я получаю «Неправильный ответ», когда отправляю решение. Кажется, люди в Интернете просто устанавливают максимальное значение 32000 и запускают решение. Я не совсем понимаю, где я на самом деле не так? Или это просто лишний newline
(если возможно), что делает решение неверным?
#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
unordered_map<long long int, bool> notPrime;
notPrime[0] = true;
notPrime[1] = true;
for (long long int x = 2; x < 100000; x++) {
if (notPrime[x]) continue;
for (long long int u = 2 * x; u < 100000; u += x)
notPrime[u] = true;
}
int n;
cin >> n;
while (n--) {
long long int s, e;
cin >> s >> e;
if (s < 0)
s = 0;
for (long long int i = s; i <= e; i++) {
if (!notPrime[i]) {
cout << i << '\n';
}
}
if (n)
puts("");
}
return 0;
}
Задача ещё не решена.
Других решений пока нет …