Cod sursa(job #468477)

Utilizator lianaliana tucar liana Data 3 iulie 2010 20:48:51
Problema Patrate2 Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.92 kb
program patrate2;
type numar=array[0..3200] of int64;
var f, g:text;
    c, vg, rez:numar;
    i, j, ii:longint;
    t, n, k:int64;

function prod_nr(a:numar;z:longint):numar;
  begin
    c:=vg;
    t:=0;
    for i:=1 to a[0] do
      begin
        k:=a[i]*z+t;
        c[i]:=k mod 10;
        t:=k div 10;
      end;
    c[0]:=a[0];
    while t>0 do
      begin
        c[0]:=c[0]+1;
        c[c[0]]:=t mod 10;
        t:=t div 10;
      end;
    prod_nr:=c;
  end;

  begin
    assign(f,'patrate2.in'); reset(f);
    assign(g,'patrate2.out'); rewrite(g);
    readln(f,n);
    rez[0]:=1;
    rez[1]:=1;
    for ii:=1 to n do
      rez:=prod_nr(rez,ii);
    n:=n*n;
    while n>30 do
      begin
        rez:=prod_nr(rez,1 shl 30);
        n:=n-30;
      end;
    rez:=prod_nr(rez,1 shl n);
    for i:=rez[0] downto 1 do
      write(g,rez[i]);
    writeln(g);
    close(f);
    close(g);
  end.