Cod sursa(job #796577)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 11 octombrie 2012 20:46:14
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<stdio.h>
int p;
int nrzero(int val)
{
	int rez = 0;
	do
	{
		val/= 5;
		rez+=val;
	} while (val/5!=0);
	return rez;
}
int bsearch(int st, int dr)
{
	int val,med;
	while (st<=dr)
	{
		med=dr-(dr-st)/2;
		val=nrzero(med);
		if (val>=p)
			dr=med-1;
		else
			st=med+1;
	}
	val=nrzero(med);
	if (val<p)
	{
		med++;
		val=nrzero(med);
	}
	if (val==p)
		return med;
	else
		return -1;
}

int main()
{
	int sol;
	freopen ("fact.in","r",stdin);
	freopen ("fact.out","w",stdout);
	scanf ("%d",&p);
	if (p==0)
		sol=1;
	else
	if (p==1)
		sol=5;
	else
		sol=bsearch(1,5*p);
	printf ("%d\n",sol);
	return 0;
}