Cod sursa(job #229101)

Utilizator SheepBOYFelix Liviu SheepBOY Data 9 decembrie 2008 09:54:38
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<stdio.h>
int a[21],b[21];
void init()
{	
	a[1]=5;
	b[1]=1;
	for(int i=2;a[i-1]<=200000000;++i)
	{
		a[i]=5*a[i-1];
		b[i]=a[i-1]+b[i-1];
	}
}
int main()
{
	int cp,p,i;
	long long sum=0,aux=0;
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	scanf("%d",&p);
	if(p)
	{
	init();
	cp=p+1;
	while(p)
	{
		for(i=12;i>=1;--i)
			if(b[i]<=p)
			{
				sum+=p/b[i]*a[i];
				p=p%b[i];
			}
		for(i=12;i>=1;--i)
			if(b[i]<=cp)
			{
				aux+=cp/b[i]*a[i];
				cp=cp%b[i];
			}
	}
	if(sum!=aux)
	printf("%lld",sum);
	else
		printf("-1");
	}
	else
		printf("1");
	return 0;
}