Каким алгоритмом можно проверить Большое число на простоту? Есть ли методы гарантированной проверки числа на простоту без необходимости полного "перебора"?
Везде встречаются либо метод "поделить на все числа меньше данного" либо вероятностные (не дают гарантии коррекности), другого способа определить нет?
Если для чисел до 100 знаков можно еще "перебрать" все хотябы до половины, то с числами в сотни тысяч знаков это бессмысленная затея, мне казалось должны быть способы определить подобное без необходимости совершать 10^100500 операций.

21 Авг 2019 в 06:12
141 +1
1
Ответы
1

Существует алгоритм проверки чисел на простоту, который является эффективным и не требует полного "перебора". Этот алгоритм называется тестом Миллера — Рабина. Он основан на том, что если число является составным, то существует вероятность, что оно будет "простым" для некоторых чисел (баз) и будет "составным" для других. Тест Миллера — Рабина позволяет определить простоту числа с определенной вероятностью, которая может быть выбрана пользователем.

Однако, если вам требуется гарантированная проверка числа на простоту без возможности ошибки, то на данный момент нет известных алгоритмов, способных обеспечить это для всех чисел. Для чисел с большим количеством знаков "перебор" всех чисел до половины действительно становится чрезмерно затратным.

Таким образом, при проверке больших чисел на простоту рекомендуется использовать тесты простоты, такие как тест Миллера — Рабина, с выбором соответствующей вероятности простоты в зависимости от требуемого уровня надежности.

20 Апр 2024 в 13:22
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир