Вот код набросала, вроде для небольших степеней и чисел все считает нормально, но почему -то при больших значения степеней, например 2^150 выдает ересь... Самое обидное, что проверить даже нечем, тупо все числа что ли вбивать в онлайн калькулятор.... Переполнение что ли в нем... Взгляните пожалуйста на код и ткине носом, что не так.
#!/usr/bin/perl -w
$| = 1;
$a = 2;
$p = 131;
$d = 2;
$d1 = 5;
$d2 = 13;
open (M, ">> rezultat.txt");
while ($a < $p) {
$one = $a ** (($p - 1) / $d);
$otvet = $one % $p;
$two = $a ** (($p - 1) / $d1);
$otvet1 = $two % $p;
$three = $a ** (($p - 1) / $d2);
$otvet2 = $three % $p;
print(M "Проверка числа $a дала результаты $otvet ; $otvet1 ; $otvet2\n\n");
++$a;
}
close (M);
Это поиск примитивного элемента в поле Галуа, там надо в степень в возводить число и искать остаток от деления...