Pagini recente » Cod sursa (job #167993) | Cod sursa (job #1320308) | Cod sursa (job #1642135) | Cod sursa (job #1559177) | Cod sursa (job #942093)
Cod sursa(job #942093)
#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;
}