Найти остаток от деления 17^2005 на 20 - Pascal

Узнай цену своей работы

Формулировка задачи:

не могу решить задание найти остаток от деления 17^2005 на 20

Решение задачи: «Найти остаток от деления 17^2005 на 20»

textual
Листинг программы
Function ModExp(a, d, m: LongInt): LongInt;
Var b: LongInt;
Begin
b := 1;
While (d > 0) do
      Begin
      If (d mod 2 = 0) then
         Begin
         d := d div 2;
         a := (a * a) mod m;
         End
      Else
         Begin
         Dec(d);
         b := (b * a) mod m;
         End;
      End;
ModExp := b;
End;

Объяснение кода листинга программы

  1. В функции ModExp определены три переменные: a, d и m.
  2. Переменная b инициализируется значением 1.
  3. Запускается цикл While, который будет выполняться до тех пор, пока d больше 0.
  4. Внутри цикла проверяется, делится ли d на 2 без остатка.
  5. Если это условие выполняется, то происходит внутренний цикл.
  6. Внутренний цикл проверяет, равен ли остаток от деления d на 2, нулю.
  7. Если это условие выполняется, то d делится на 2 и переменная a вычисляется как квадрат числа a по модулю m.
  8. Если условие из пункта 6 не выполняется, то d уменьшается на 1, а переменная b вычисляется как произведение b и a по модулю m.
  9. После окончания внутреннего цикла значение переменной b присваивается переменной ModExp.
  10. Цикл While завершается, и функция ModExp возвращает значение переменной ModExp.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы