Cod sursa(job #264699)

Utilizator Radu_BumbaceaRadu Bumbacea Radu_Bumbacea Data 22 februarie 2009 16:47:40
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include <stdio.h>

int main()
{
	int n,p,q,k,t;
	int a[40];
	freopen("fact.in","r",stdin);
	freopen("fact.out","w",stdout);
	scanf("%d",&p);
	q=1;k=0;n=0;
	while ((q-1)/4<=p)
	{
		q=q*5;
		k=k+1;
	}
	q=q/5;k=k-1;
	for (int i=k;i>=1;i=i-1)
	{
		t=(q-1)/4;
		a[i]=p/t;
		if (a[i]>4)
		{
			printf("-1");
			return 0;
		}
		p=p-(t*a[i]);
		q=q/5;
	}
	for (int j=k;j>=1;j=j-1)
	{
		n=n*5+a[j];
	}
	n=n*5;
	if (n==0) printf("1");
	else printf("%d",n);
	return 0;
}