Cod sursa(job #414643)

Utilizator marian77ivan marian liviu marian77 Data 10 martie 2010 12:43:20
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include <stdio.h>
int st,dr,n,p,nr,q,ok;
int main() {
	FILE *f=fopen("fact.in","r");
	FILE *g=fopen("fact.out","w");
	fscanf(f,"%d",&p);
	st=0;
	dr=2000000000;
	if(p==0)
		fprintf(g,"1");
	else
		while(ok==0&&st<=dr) {
			nr=0;
			n=(st+dr)/2;
			q=5;
			while(q<=n) {
				nr=nr+n/q;
				q=q*5;
			}
			if(nr==p) {
				ok=1;
				n=n-n%5;
				fprintf(g,"%d",n);
				break;
			}
			else
				if(nr>p)
					dr=n-1;
				else
					st=n+1;
		}
	if(st>dr)
		fprintf(g,"-1");
	return 0;
}