Pagini recente » Cod sursa (job #240863) | Cod sursa (job #2323906) | Cod sursa (job #785548) | Profil Diana_Ionita | Cod sursa (job #20489)
Cod sursa(job #20489)
const b:array[1..12] of int64=(5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625);
a:array[1..12] of int64=(1,6,31,156,781,3906,19531,97656,488281,2441406,12207031,244140625);
var f,g:text;
i,x:longint;
p,n:int64;
ok,ok2:boolean;
begin
assign(f,'fact.in'); reset(f);
assign(g,'fact.out'); rewrite(g);
read(f,p);
if p=0 then begin
ok2:=false;
writeln(g,'1');
end
else
ok2:=true;
n:=0;
ok:=true;
while (p<>0) and (ok) do
for i:=1 to 12 do
if (a[i]<=p) and (a[i+1]>p) then begin
x:=p div a[i];
if x>4 then
ok:=false;
n:=n+x*b[i];
p:=p-x*a[i];
break;
end;
if ok then
writeln(g,n)
else
if ok2 then
writeln(g,'-1');
close(g); close(f);
end.