Cod sursa(job #582391)

Utilizator lam99Tran Bach Lam lam99 Data 15 aprilie 2011 12:16:56
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>
long long p,sst,ddr,b;
long long ok(long long val)
{
		long long pp,ook;
		pp=5;
		ook=0;
		while(val/pp)
			{
				ook=ook+val/pp;
				pp=pp*5;
			}
		return ook;
}
	
long long bs()
{
		long long med,last=-1,st,dr,k=0;
		st=1;
		dr=1ll<<60;
		while(st<=dr)
			{
				med=st+(dr-st)/2;
				if(ok(med)<p)
					st=med+1;
				else
					if(ok(med)==p)
						{
							dr=med-1;
							last=med;
							k=1;
						}
					else
						{
							dr=med-1;
							last=med;
						}	
			}
		if(k==0)
			return -1;
		return last;
}


int main()
{		
		freopen("fact.in","r",stdin);
	    freopen("fact.out","w",stdout);
		scanf("%lld",&p);
		b=bs();
		printf("%lld",b);
		return 0;
}