Cod sursa(job #352441)

Utilizator HoriaClementHoriaC HoriaClement Data 1 octombrie 2009 19:35:30
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.45 kb
#include<stdio.h>

const int N = 1<<30;

int cinci(int n)
{
	int s=0;
	while(n)
	{
		s+=n/5;
		n/=5;
	}
	return s;
}

int fact(int p)
{
	int st=1,dr=N,m;
	while(st!=dr)
	{
		m=(st+dr)/2;
		if (p<=cinci(m))
			dr=m;
		else
			st=m+1;
	}
	if (cinci(st)==p) return st;
	return -1;
}
int main()
{
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	int p;
	scanf("%d",&p);
	printf("%d\n",fact(p));
	return  0;
}