Cod sursa(job #201387)

Utilizator cypherMircea Grecu cypher Data 31 iulie 2008 10:57:26
Problema Factorial Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.9 kb
program fact_006;
var p,n:longint;

	procedure citire;
	var f:text;
	begin
		assign(f,'fact.in'); reset(f);
		readln(f,p);
		close(f);
	end;

	function go(n:longint):word;
	var l:word;
	begin
		l:=0;
		while n mod 5=0 do begin
			inc(l);
			n:= n div 5;
		end;
		exit(l);
	end;

	procedure main;
	var k,k1,n1:longint;
	begin
		k:=0; n:=0;
		if p=0 then begin n:=1; exit; end;
		while k<p do begin
			inc(n,125); inc(k,28);
			k1:=3;
			n1:=n div 125;
			while n1 mod 5=0 do begin
				inc(k1);
				n1:= n1 div 5;
			end;
			inc(k,k1);
		end;
		if k>p then begin
			dec(k,k1); dec(n,5);
			while k>p do begin
				dec(k);
				if n mod 25=0 then dec(k);
				dec(n,5);
			end;
			if k<>p then n:=-1;
		end;
	end;

	procedure scriere;
	var f:text;
	begin
		assign(f,'fact.out'); rewrite(f);
		writeln(f,n);
		close(f);
	end;

BEGIN
	citire;
	main;
	scriere;
END.