RosettaCodeData/Task/Modular-exponentiation/SETL/modular-exponentiation.setl
2026-04-30 12:34:36 -04:00

19 lines
521 B
Text

program ModPow;
a := 2988348162058574136915891421498819466320163312926952423791023078876139;
b := 2351399303373464486466122544523690094744975233415544072992656881240319;
print(modpow(a, b, 10**40));
proc modpow(b, e, m);
r := 1;
loop
init r := 1;
step e div:= 2;
until e = 0 do
if e mod 2 = 1 then
r := (b * r) mod m;
end if;
b := (b * b) mod m;
end;
return r;
end proc;
end program;