Ocena użytkownikóww: ***** / 2
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.
MOD_a.adb:
--
-- Obliczanie modulo z dowolnie duzej liczby
--
-- www.algorytm.org
-- (c)2006 Tomasz Lubinski
--
with Text_IO;
use Text_IO;
procedure MOD_a is
function modulo(n: String; m: Integer) return Integer is
result : Integer := 0;
begin
for i in n'Range loop
if result = 0 then
declare
x : String := "" & n(i);
begin
result := Integer'value(x);
end;
else
declare
x : String := Integer'Image(result) & n(i);
begin
result := Integer'value(x);
end;
end if;
result := result mod m;
end loop;
return result;
end;
begin
-- 510007547061111400 mod 97 = 36
Put_Line("510007547061111400 mod 97 = " & Integer'Image(modulo("510007547061111400", 97)));
-- 1295302 mod 7 = 1
Put_Line("1295302 mod 7 = " & Integer'Image(modulo("1295302", 7)));
end;