logo
Коды и шифры

M22. Вычисление остатка с использованием модульной арифметики

  1. То, что запись числа (59)96 содержит 171 цифру, следует из того факта, что

96log10(59)=96(1.77085...)=170.0018...

Отсюда вытекает, что число (59)96 заключено между величинами 10170 и 10171, и следовательно, его запись содержит 171 цифру.

  1. При использовании модульной арифметики бывает выгодно вычесть из показателя степени максимально возможную степень двойки, затем возвести число в степень (нечетного) остатка, и наконец, последовательно возводя его в квадрат, найти требуемое значение. Так, например, поскольку 96=332, то если мы вычислим (59)3(mod 97) и последовательно возведем это значение в квадрат пять раз, на каждом этапе приводя результат по модулю 97, то в результате получим нужное нам число. В деталях это выглядит так:

5959=3481=3597+86,

следовательно,

(59)38659=5074=5297+3030(mod 97),

поэтому

(59)6(30)2=900=997+2727(mod 97),

поэтому

(59)12(27)2=729=797+5050(mod 97),

следовательно,

(59)24(50)2=2500=2597+7575(mod 97),

следовательно,

(59)48(75)2=5625=5797+9696(mod 97) -1(mod 97),

и наконец,

(59)96(-1)2=1(mod 97),

то есть, как и утверждалось, (59)96 дает при делении на 97 остаток 1.