Ocena użytkownikóww: ***** / 1
Nadesłany przez Tomasz Lubiński, 13 listopada 2006 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
NPM.adb:
--
-- Naiwne Potegowanie modulo
--
-- www.algorytm.org
-- (c)2006 Tomasz Lubinski
--
with Text_IO;
use Text_IO;
procedure NPM is
-- calculates a^b mod m
function power_modulo(a: Integer; b: Integer; m: Integer) return Integer is
result : Integer := 1;
begin
for i in 1 .. b loop
result := result * a;
result := result mod m;
end loop;
return result;
end;
begin
-- 9688563^458926 mod 71 = 30
Put_Line("9688563^458926 mod 71 = " & Integer'Image(power_modulo(9688563, 458926, 71)));
-- 12^4 mod 7 = 2
Put_Line("12^4 mod 7 = " & Integer'Image(power_modulo(12, 4, 7)));
end;