Cod sursa(job #629019)

Utilizator akumariaPatrascanu Andra-Maria akumaria Data 2 noiembrie 2011 16:21:52
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>


int p5[1000],p;


int ver(int x)
{
	int i=1,s=0;
	while(x/p5[i])
	{
		s=s+x/p5[i];
		++i;
	}
	if(s<p)
		return -1;
	return (s>p);
}


int main()
{
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	int st,dr,m,a=5;
	scanf("%d",&p);
	p5[1]=5;
	p5[0]=1;
	while(a<p)
	{
		a=a*5;
		p5[++p5[0]]=a;
	}
	p5[++p5[0]]=a*5;
	st=p;
	dr=p*5;
	m=1;
	while(st<dr)
	{
		m=st+(dr-st)/2;
		a=ver(m);
		if(a>=0)
			dr=m-a;
		else
			st=m+1;
	}
	m=st+(dr-st)/2;
	if(m==0)
		m=1;
	printf("%d\n",m);
	return 0;
}