Pagini recente » Cod sursa (job #3188493) | Cod sursa (job #1912587) | Cod sursa (job #2661401) | Cod sursa (job #2325267) | Cod sursa (job #468474)
Cod sursa(job #468474)
program patrate2;
type numar=array[0..1000] of longint;
var f, g:text;
c, vg, rez:numar;
i, j, ii:longint;
t, n:int64;
function prod(a,b:numar):numar;
var z:int64;
begin
c:=vg;
for i:=1 to a[0] do
for j:=1 to b[0] do
c[i+j-1]:=c[i+j-1]+a[i]*b[j];
t:=0;
c[0]:=a[0]+b[0]-1;
for i:=1 to c[0] do
begin
z:=c[i]+t;
c[i]:=z mod 10;
t:=z div 10;
end;
while t>0 do
begin
c[0]:=c[0]+1;
c[c[0]]:=t mod 10;
t:=t div 10;
end;
prod:=c;
end;
function prod_nr(a:numar;z:longint):numar;
begin
c[0]:=0;
while z>0 do
begin
c[0]:=c[0]+1;
c[c[0]]:=z mod 10;
z:=z div 10;
end;
prod_nr:=prod(a,c);
end;
function putere(k:longint):numar;
var x:numar;
begin
if k=0 then
begin
putere[0]:=1;
putere[1]:=1;
end
else
if k mod 2=0 then
begin
x:=putere(k div 2);
putere:=prod(x,x);
end
else
begin
x:=putere(k div 2);
putere:=prod_nr(prod(x,x),2);
end;
end;
begin
assign(f,'patrate2.in'); reset(f);
assign(g,'patrate2.out'); rewrite(g);
readln(f,n);
rez:=putere(n*n);
for ii:=1 to n do
rez:=prod_nr(rez,ii);
for i:=rez[0] downto 1 do
write(g,rez[i]);
writeln(g);
close(f);
close(g);
end.