Cod sursa(job #281822)

Utilizator space.foldingAdrian Soucup space.folding Data 15 martie 2009 22:42:43
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 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>=4);
	
	nl=(long)n;


	for(i=0; i<250; 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<250)
		printf("%ld", nl+i);
	else
		if(p==0)
			printf("1");
		else
			printf("-1");
	
	return 0;
}