Ошибка при возведении в степень по модулю 33 - C#
Формулировка задачи:
ошибка при возведении в степень по модулю 33
пробую 15^17 по модулю должен вывести 27
14^17 должно быть 20
это алгоритм RSA, пытаюсь зашифроать букву п -она под помером 15
буква о-номер 14
int p = 3;
int q = 11;
int n = 33;
int k = 20;
int io = 17;
//int ul = 1 / io;
// int d = ul % k;
string temp = string.Empty;
string s;
s = textBox1.Text;
n = s.Length;
string alf = "абвгдежзийклмнопрстуфхцчшщъыьэюя";
int m = alf.Length;
/* для каждого символа кодируемой строки */
for (int i = 0; i < s.Length; i++)
/* поиск соответствующего символа в алфавите */
for (int j = 0; j < alf.Length; j++)
{
/* если символ найден */
if (s[i] == alf[j])
{
double letter = j;
letter = (Math.Pow(letter, io )) ;
letter = letter % 33 ;
// double b = Math.Pow(15, 17);
textBox5.Text = temp += " "+letter.ToString("#");Решение задачи: «Ошибка при возведении в степень по модулю 33»
textual
Листинг программы
public BigInteger MyPower(int a, int x)
{
BigInteger result = new BigInteger(a);
for (int i=0; i < x - 1; i++)
result *= a;
return result;
}