Neuroware
@Neuroware
Программист в свободное от работы время

Возможно ли определить за умеренное время (часы\дни) является ли заданное число, с числом знаков более 1000, простым?

Суть вопроса в заголовке, я знаю, что алгоритмов много, но интересно насколько долго будет проводиться процедура, скажем если будет 1млн. знаков. Число заранее определено.
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 3
@vilgeforce
Раздолбай и программист
Есть вероятностные тесты, например Рабин-Миллер.
Ответ написан
Mrrl
@Mrrl
Заводчик кардиганов
Скорость работы вероятностного алгоритма - примерно C*L^2*log(L), где L - длина проверяемого числа, C - количество тестов (вероятность false positive будет не больше 4^(-C)). Это если использовать сверхбыстрые алгоритмы умножения. Для миллиона знаков время получится несколько триллионов - и там всё зависит от константы. Будут это часы, или дни - сказать трудно.
Если тестируемое число равно произведению нескольких известных простых чисел + 1, то проверка может дать гарантированный результат, но в этом случае C равно количеству чисел, входящих в произведение.
Ответ написан
starius
@starius
программист, аспирант МГУ
Существует детерминированный полиномиальный алгоритм Агравала... для проверки числа на простоту.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы