Алгоритм поиска наибольшего простого множителя числа
На самом деле есть несколько algorithm более эффективных способов prime-factoring найти множители больших чисел mathematics (для меньших достаточно хорошо prime-factoring работает пробное деление).
Один algorithm метод, который очень быстр, если algorithms во входном числе два множителя algorithm-design очень близки к его квадратному prime-factoring корню, известен как Fermat factorisation. Он mathematics использует тождество N = (a algorithm-design + b) (a - b) = a ^ 2 - b mathematics ^ 2, и его легко понять и prime-factoring реализовать. К сожалению, в mathematics целом это не очень быстро.
Самый algorithm известный метод разложения algorithms чисел длиной до 100 цифр arithmetic - это Quadratic sieve. В качестве бонуса mathematics часть алгоритма легко выполняется maths с помощью параллельной обработки.
Еще algorithms один алгоритм, о котором math я слышал, - это Pollard's Rho algorithm. Это не mathematical так эффективно, как квадратное algorithms сито в целом, но кажется, что mathematics его проще реализовать.
После mathematics того, как вы решили, как algorithm разделить число на два фактора, вот mathematical самый быстрый алгоритм, который mathematical я могу придумать, чтобы найти mathematics наибольший простой множитель algorithm числа:
Создайте приоритетную mathematics очередь, в которой изначально algorithms хранится сам номер. На каждой mathematics итерации вы удаляете наибольшее algorithms число из очереди и пытаетесь arithmetic разделить его на два фактора mathematics (конечно, не позволяя 1 быть mathematical одним из этих факторов). Если mathematical этот шаг не удается, число prime-factoring простое, и вы знаете свой math ответ! В противном случае mathematical вы добавляете два фактора arithmetic в очередь и повторяете.
algorithm
math
prime-factoring
Алгоритм поиска наибольшего простого множителя числа
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.