Cod sursa(job #135626)

Utilizator mihai0110Bivol Mihai mihai0110 Data 14 februarie 2008 00:59:11
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>
#include<values.h>
long st=0,dr=MAXLONG,mij,nr,p,sol;
long nrdezero(long x)
	{
	long z=5,rez=0;
	while(z<=x)
		{
		rez+=x/z;
		z*=5;
		}
	return rez;
	}
int main(void)
{
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	scanf("%ld",&p);
	while(st<=dr)
	{
		mij=(st+dr)/2;
		nr=nrdezero(mij);
		if(nr==p)
			{
			sol=mij;
			dr=mij-1;
			}
		else
			if(nr<p)
				st=mij+1;
			else
				dr=mij-1;
	}
	if(p)
	if(sol)
	printf("%ld\n",sol);
	else
	printf("-1\n");
	else
	printf("1\n");
	return 0;
}