Зачем в задаче D https://codeforces.net/contest/1366/problem/D сделали такие большие n/числа? Правильное решение падает по TL на больших простых числах. Зачем так сделано? Ведь заифаешь ты простые числа, не заифаешь решение остаётся правильным. К тому же на раунде который идёт 2 часа, у меня не будет мысли писать ненужную проверку на простоту.
Чтобы люди научились писать линейное решето, очевидно
Тут решето за лог лог не очень тормозит, его можно не учитывать
Такое решение тормозит не только для простых чисел. Оно так же медленно работает для произведений двух простых порядка корня из числа, типа $$$3109 \cdot 3119 = 9\,696\,971$$$.
Также такое решение может медленно работать для больших степеней какого-то простого