Cod sursa(job #409321)

Utilizator lianaliana tucar liana Data 3 martie 2010 16:25:20
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.88 kb
program puteri;
type numar=array[0..10000{!!!}] of longint;
var f, g:text;
    vx:numar;
    x, n, i:longint;
    r, rez:int64;

function gen(k:longint):int64;
var nr:int64;
  begin
    if k=0 then
      gen:=1
     else
       if k mod 2=0 then
         begin
           nr:=gen(k div 2);
           gen:=((nr mod 1999999973)*(nr mod 1999999973)) mod 1999999973;{prod(nr,nr);}
         end
        else
          begin
            nr:=gen(k-1);
            gen:=((nr mod 1999999973)*(x mod 1999999973)) mod 1999999973{prod(nr,vx);}
          end;
  end;

  begin
    assign(f,'lgput.in'); reset(f);
    assign(g,'lgput.out'); rewrite(g);
    read(f,x);
{    while x>0 do
      begin
        vx[0]:=vx[0]+1;
        vx[vx[0]]:=x mod 10;
        x:=x div 10;
      end;}
    readln(f,n);
    rez:=gen(n);
    writeln(g,rez);
    close(f);
    close(g);
  end.