Квант

11

Так или не так действовал Ферма?
(о факторизация чисел)

Б. А. Кордемский

С именем знаменного Пьера Ферма связано много тайн. Однако он получил письмо с вопросом: «Является ли простым числом 100895598169?» Ферма незамедлительное ответил, что это двенадцатизначное число является произведением двух простых чисел: 898423 и 112303.

Способ исследования числа он не раскрыл.

Отъискание простых множителей натурального числа называют для краткости «факторизация» («фактор», значит — множество ссылок слового объчно и употребляется). Далее с таким помощьюками, как электронные вычислительные машины, факторизация больших чисел — чрезвычайно трудоемкая задача, тем более трудно сделать это «ручным способом». Несолько первых простых чисел (2, 3, 5, 7, 11, …) легко проверяют на их природность в качестве возможных множителей испытуемого числа — по известным признакам делимости на эти числа. Упрощает вычисления и значение признаков делимости на какие-либо из последующих простых чисел *).

Ясно также, что для всякого заданного числа NN достаточно испытывать в качестве возможных множителей простые числа, меньше, чем VN‾V\overline{N}. Действительно, если у числа NN есть множитель m>VN‾m > V\overline{N}, то ему соответствует, как результат деления NN на mm, и некоторый множитель, меньше, чем VN‾V\overline{N}.

Как прием факторизацию можно использовать известный алгоритм Евклида.

*) См. например, заметку о признаках делимости на 19 и 7 в «Кванте» № 6, 1970, стр. 10.

клида для отыскания наиболее общего делителя (НОД) двух чисел. Состоит он, как вы, быть может, помните, в следующем *): находим остаток r1r_1 от деления большого числа на меньше, затем находим остаток r2r_2 от деления предшествующего делителя на r1r_1, затем остаток r3r_3 от деления r1r_1 на r2r_2 и т. д. Послений не равный нулю остаток (он непременно существует, поскольку числа rir_i убывают) и есть НОД заданных чисел (если он равен 1, то они взaimно просты).

Для примера применим этот алгоритм к числам 104 и 39:

104 : 39 = 2 (остаток 26);
39 : 26 (остаток 13);
26 : 13 = 2 (остаток 0).

Ответ: НОД (104,39) = 13.

Как же применить алгоритм Евклида к факторизации чисел?

Для выявления простых множителей числа NN образуется другое число PP — произведение всех простых чисел от наименьшего из «подозреваемых» множителей числа NN до наименьшего среди всех простых, меньше, чем N\sqrt{N}. К этим числам NN и PP мы и применим алгоритм Евклида.

Пусть, например, N=851N = 851. Замечаем, что N<31\sqrt{N} < 31. Установливаем по признакам делимости, что NN не делится на 3, 7, 11, 13. Кроме того, сразу видно, что 851 при делении на 17 дает в остатке 1. Остается испытыть делимость NN на 19, 23 и 29. Для такого необольшего числа, как 851, это легко сделать примым делением

*) Обоснование и примеры применения алгоритма Евклида приведены в статье А. Н. Виленкина «Сокращение алгебраических дробей» («Квант» № 11, 1970) и Вагутена «Алгоритм Евклида и основная теорема алфметики» («Квант» № 6, 1972).