Проверьте тесты простоты в Википедии для указателей на текущие алгоритмы
Что касается вашей наивной реализации, обратите внимание, что вы можете немедленно вернуть false, если число делится на 2, что позволяет просто проверять нечетные числа. Кроме того, если вы не найдете фактор, где x <= sqrt (i), он прост. Это потому, что если вы нашли фактор, больший, чем sqrt (i), то он должен быть в паре с коэффициентом <em>меньшим , чем sqrt (i). Поэтому, если вы сначала не найдете этот меньший фактор, все готово.
Есть также еще пара трюков, которые вы можете применить к наивному алгоритму, прежде чем отправиться на помощь к https://mathoverflow.net/ за помощью:)