Cod sursa(job #330648)

Utilizator hominiduBirsan Dragos hominidu Data 10 iulie 2009 22:38:24
Problema Invers modular Scor 60
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.