Cod sursa(job #713069)

Utilizator andrei_toaderToader Andrei Sorin andrei_toader Data 14 martie 2012 10:37:05
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.48 kb
program ridicare;
var f,g:text;
    n,p,solutie:qword;
    i,nr:longint;
    a:qword;
    v:array[1..10000] of 0..1;

begin
 assign (f,'lgput.in'); reset (f);
 assign (g,'lgput.out');rewrite (G);
 read (f,n,p);
 nr:=0;    a:=n;
 while p<>0 do
 begin
  nr:=nr+1; v[nr]:=p mod 2; p:=p div 2;
 end;
 solutie:=1;
 for i:=1 to nr do
 begin
 if v[i]=1 then
  solutie:=(solutie*a) mod 1999999973;
  a:=(a*a) mod 1999999973;
 end;
 write (g,solutie);
 close (f); close (g);
end.