Я хочу рассчитать b mod n для использования в расшифровке RSA. Мой код (ниже) возвращает неверные ответы. Что с ним не так?
unsigned long int decrypt2(int a,int b,int n)
{
unsigned long int res = 1;
for (int i = 0; i < (b / 2); i++)
{
res *= ((a * a) % n);
res %= n;
}
if (b % n == 1)
res *=a;
res %=n;
return res;
}