Вы ищете тест на первичность. Вы должны быть в состоянии искать и находить много возможностей. Вот ответ, который я написал несколько лет назад и который, вероятно, намного больше, чем вы хотите:
Самый быстрый способ узнать, является ли данное число простым
Большинство деталей касаются чисел, больших 64-битных, где есть много возможных отклонений и вариантов выбора. Для 64-битных входов простым и разумным ответом является использование небольшого пробного деления, за которым следует специально разработанный набор тестов Миллера-Рабина, которые дают детерминированные результаты (при этом не используется ни случайность, ни вероятность ошибки при правильном применении). Если вы хотите немного оптимизировать, то есть хэшированные наборы и BPSW для рассмотрения.
Добавление : Есть случаи, которые могут быть выполнены быстрее, если количество входов намного больше, чем максимальный размер входа или количество уникальных входов, или если есть некоторое распределение, такое как ожидание много повторных входов. Тогда такие решения, как кэширование или создание набора битов для быстрого поиска, могут быть быстрее. Знание входного набора очень помогает.