Cod sursa(job #263576)

Utilizator mihaitza_1993Fieraru Mihai mihaitza_1993 Data 20 februarie 2009 16:58:08
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
using namespace std;
int main()
{
	long int p,n,a,s,i,j,k,m,nr5=0,imparte,salvat;
	ifstream in("fact.in");
	ofstream out("fact.out");
	in>>p;
	salvat=p;
	n=0;
	a=0;
	while(p>=6)
	{
		s=1;
		i=1;
		j=0;
		while(i*5+1<=p) 
		{
			j++;
			i=i*5+1;
		}
		for(k=1;k<=j;k++) s=s*5;
		n=n+s;
		p=p-i;
	}
	n=n+p;
	m=n;
	i=1;
	while (i<m) i=i*5;
	if((i==m)&&(i!=1)) a=1;
	imparte=1;
	for (i=1; i<= 5*n && imparte<=n; i++)
	{
		imparte*=5;
		nr5+=5*n/imparte;
	}
	if (salvat==1)
		out<<"0";
	else
		if (nr5==salvat)
			out<<5*n;
		else
			out<<"-1";
	in.close();
	out.close();
	return 0;
}