Алгоритм разложения чисел на простые множители.

Алгоритм А (Разложение на простые множители путем деления). По данному положительному целому числу N этот алгоритм находит простые множители p1р2 ≤ … ≤ pt числа N. В этом методе используется вспомогательная последовательность пробных делителей

d = d0 < d1 < d2 < d3 < …,

которая включает в себя все простые числа < (и, если это удобно, может содержать числа, не являющиеся простыми). Последовательность чисел di должна также содержать по крайней мере одно значение, такое, что dk > .

А1. [Начальная установка.] Присвоить t ← 0, k ← 0, nN. (В ходе выполнения алгоритма переменные t, k, n подчинены следующим условиям: "n = N/p1...pt и n не имеет простых множителей, меньших dk".)

А2. [n = 1?] Если n = 1, алгоритм заканчивается.

A3. [Разделить.] Присвоить q ← , r n mod dk. (Здесь q и r - соответственно частное и остаток от деления числа n на dk.)

А4. [Остаток равен нулю?] Если r ≠ 0, то перейти к шагу А6.

А5. [Множитель найден.] Увеличить t на 1 и присвоить ptdk, nq. Возвратиться к шагу А2.

А6. [Частное мало?] Если q > dk, увеличить k на 1 и возвратиться к шагу A3.

А7. [n — простое число.] Увеличить t на 1, присвоить ptn и завершить выполнение алгоритма.

 

Рис.32. Алгоритм разложения числа на простые множители