Cod sursa(job #212707)

Utilizator hadesgamesTache Alexandru hadesgames Data 6 octombrie 2008 15:41:02
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<stdio.h>
long long search(long long);
int main ()
{
	int p;
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	scanf("%d",&p);
	printf("%lld\n",search(p));
	return 0;
}
bool ver(long long x,long long p)
{
	long long i,nr=0;
	for (i=5;i<=x;i*=5)
	{
		nr+=x/i;
	}
	if (nr==p)
		return 1;
	if (nr>p)
		return 2;
	return 0;
}
long long search(long long p)
{
	long long rez=0,i;
	for (i=((long long)1)<<60;i;i>>=1)
	{
		rez+=i;
		if (ver(rez,p))
			rez-=i;
	}
	return ver(rez+1,p)==1?rez+1:-1;
}