Почему при поиске остатка числа выдает неверный результат? - C#

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

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

Добрый вечер. Не могу понять в чем проблема. Нужно найти моду числа:
Листинг программы
  1. double res2 = (Math.Pow(x, (n - 1) / 2));
  2. Console.WriteLine("res2 = {0}", (res2 % n));
где х=3,n=121. В результате должно выводить 1,а выводит 93. В чем проблема?Спасибо

Решение задачи: «Почему при поиске остатка числа выдает неверный результат?»

textual
Листинг программы
  1. int Modulo(int x, int n)
  2. {
  3.     int result = 1;
  4.     int e = (n - 1) / 2;
  5.  
  6.     while (e > 0)
  7.     {
  8.         if (e % 2 == 1)
  9.             result = (result * x) % n;
  10.         e /= 2;
  11.         x = (x * x) % n;
  12.     }
  13.     return result;
  14. }

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


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

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

7   голосов , оценка 4.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы