Быстрое возведение в степень по модулю - C#
Формулировка задачи:
Столкнулся с проблемой, из-за которой не могу реализовать шифр.
Это метод быстрого возведения в степень по модулю , он работает правильно на положительных числах.
И суть в том , что в онлайн калькуляторе -137 mod 22 = 17. (Я не понимаю как получается это число), а у меня берется не как -137, а как обычные 137 mod 22 и получается 5;
Уже час сижу не могу понять. Заранее спасбио.
public Int64 FastPowFunc(Int64 Number, Int64 Pow, Int64 Mod) { Int64 Result = 1; Int64 Bit = Number % Mod; while (Pow > 0) { if ((Pow & 1) == 1) { Result *= Bit; Result %= Mod; } Bit *= Bit; Bit %= Mod; Pow >>= 1; } return Result; }
Решение задачи: «Быстрое возведение в степень по модулю»
textual
Листинг программы
BigInteger.ModPow(-137, 1, 22)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д