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