Cod sursa(job #222915)

Utilizator drag0s93Mandu Dragos drag0s93 Data 26 noiembrie 2008 10:20:04
Problema Factorial Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
#define MAX 100000000
int a[20],b[20];

void precalcul()
{
	a[1]=5;
	b[1]=1;
	for(int i=2;b[i-1]<=MAX;++i)
	{
		a[i]=5*a[i-1];
		b[i]=a[i-1]+b[i-1];
	}
}

int caut(int p)
{
	int i=1;
	while(b[i]<=p)
		++i;
	return i-1;
}

int calcul(int p)
{
	int s=0,poz;
	while(p)
	{
		poz=caut(p);
		s+=p/b[poz]*a[poz];
		p%=b[poz];
	}
	return s;
}

int main()
{
	int p,zero=0;
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	precalcul();
	scanf("%d%d",&p);
	zero=calcul(p);
	printf("%d",zero);
	return 0;
}