22 lines
510 B
Plaintext
22 lines
510 B
Plaintext
# Built-in
|
|
a := 2988348162058574136915891421498819466320163312926952423791023078876139;
|
|
b := 2351399303373464486466122544523690094744975233415544072992656881240319;
|
|
PowerModInt(a, b, 10^40);
|
|
1527229998585248450016808958343740453059
|
|
|
|
# Implementation
|
|
PowerModAlt := function(a, n, m)
|
|
local r;
|
|
r := 1;
|
|
while n > 0 do
|
|
if IsOddInt(n) then
|
|
r := RemInt(r*a, m);
|
|
fi;
|
|
n := QuoInt(n, 2);
|
|
a := RemInt(a*a, m);
|
|
od;
|
|
return r;
|
|
end;
|
|
|
|
PowerModAlt(a, b, 10^40);
|