Cod sursa(job #942093)

Utilizator ShadoWolfCodrut Constantin Gusoi ShadoWolf Data 20 aprilie 2013 18:53:00
Problema Factorial Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
using namespace std;
 
long fact(long a);
 
int main()
{
    long a;
    ifstream in("fact.in");
    in>>a;
    in.close();
    ofstream out("fact.out");
    out<<fact(a)<<"\n";
    out.close();
    return 0;
}
 
 
long fact(long a)
{  
	long sum=0;
    if (a==0) return 1;
	const long MAX=10000001;
	long v[MAX]={};
	for (long i=1;i<MAX;++i)
	{
		v[i]=1;
	}
	for (long i=5;i<MAX;i+=5)
	{
		v[i]+=1;
	}
	for (long i=25;i<MAX;i+=25)
	{
		v[i]+=1;
	}
	for (long i=125;i<MAX;i+=125)
	{
		v[i]+=1;
	}
	for (long i=625;i<MAX;i+=625)
	{
		v[i]+=1;
	}
	for (long i=3125;i<MAX;i+=3125)
	{
		v[i]+=1;
	}
	for (long i=15625;i<MAX;i+=15625)
	{
		v[i]+=1;
	}
	for (long i=78125;i<MAX;i+=78125)
	{
		v[i]+=1;
	}
	for (long i=390625;i<MAX;i+=390625)
	{
		v[i]+=1;
	}
	for (long i=1953125;i<MAX;i+=1953125)
	{
		v[i]+=1;
	}
	v[9765625]+=1;
	long ind=0;
	while(ind<MAX)
	{
		ind++;
		sum+=v[ind];
		if (sum==a)
		{
			return ind*5;
		}
		else if(sum>a)
		{
			return -1;
		}
	}
	return -1;
}