Cod sursa(job #281819)

Utilizator space.foldingAdrian Soucup space.folding Data 15 martie 2009 22:34:56
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <stdio.h>

int main ()
{
	double p, k, k1;
	double n;
	long nl, s, i;
	freopen("fact.in", "r", stdin);
	freopen("fact.out", "w", stdout);
	scanf("%lf", &p);

	k=1;
	do
	{
		k*=5;
		n=4.*k/(k-1.)*(p);
	}
	while((long)n/k>5);
	
	nl=(long)n;


	for(i=0; i<500; i++)
	{
		s=0;
		k1=k;
		while(k!=1)
		{
			s+=(long)((nl+i)/k);
			k/=5;
		}
		if(s==(long)p)
			break;
		k=k1;
	}
			



	if(nl && i<500)
		printf("%ld", nl+i);
	else
		if(p==0)
			printf("1");
		else if(p==1)
			printf("5");
		else
			printf("-1");
	
	return 0;
}