Cod sursa(job #330647)

Utilizator hominiduBirsan Dragos hominidu Data 10 iulie 2009 22:37:18
Problema Invers modular Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.44 kb
var a,n:int64;
    f,g:text;

function rid(x,k,n:int64):int64;
var a,b:int64;
begin
if k = 0 then
rid:=1
else

if k mod 2 = 0 then
begin
a:=rid(x,k div 2,n);
rid:=a*a mod n ;
end
else
begin
a:=rid(x,k div 2,n);
b:=a*a mod n;
rid:=b*x mod n;
end;
end;



BEGIN
assign(f,'inversmodular.in');
reset(f);
read(f,a,n);
close(f);
assign(g,'Inversmodular.out');
rewrite(g);
writeln(g,rid(a,n-2,n));
close(g);




END.