Cod sursa(job #582360)

Utilizator darius1998noname darius1998 Data 15 aprilie 2011 11:37:28
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>
long long  z,n,i;
int p;

long ok(long med)
{
	int ps;
	int oa;
	ps=5;
	oa=1;
	while(med/ps)
	{
		oa+=med/ps;
		ps*=5;
	}
	return oa;
}

long long bs(long long st,long long dr)
{
	long med,last=-1;
	while(st<=dr)
	{
		med=st+(dr-st)/2;
		if(p<ok(med))
		{
			last=med;
			dr=med-1;
		}
		else
				st=med+1;
	}
	return last;
}

int main()
{
	freopen("factorial.in","r",stdin);
	freopen("factorial.out","w",stdout);
	long long st,dr;
	scanf("%d",&p);
	st=1;
	dr=1ll<<60;
	printf("%lld",bs(st,dr));
	return 0;
}