Почему при поиске остатка числа выдает неверный результат? - C#
Формулировка задачи:
Добрый вечер. Не могу понять в чем проблема. Нужно найти моду числа:
где х=3,n=121. В результате должно выводить 1,а выводит 93. В чем проблема?Спасибо
double res2 = (Math.Pow(x, (n - 1) / 2));
Console.WriteLine("res2 = {0}", (res2 % n));Решение задачи: «Почему при поиске остатка числа выдает неверный результат?»
textual
Листинг программы
int Modulo(int x, int n)
{
int result = 1;
int e = (n - 1) / 2;
while (e > 0)
{
if (e % 2 == 1)
result = (result * x) % n;
e /= 2;
x = (x * x) % n;
}
return result;
}