Pagini recente » Cod sursa (job #1184588) | Cod sursa (job #303133) | Cod sursa (job #859732) | Cod sursa (job #863310) | Cod sursa (job #548121)
Cod sursa(job #548121)
#include <iostream>
#include <fstream>
using namespace std;
int p,n;
int a[13]={0,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125};
int b[13]={0,6, 31,156, 781, 3906,19531, 97656, 488281,2441406,12207031, 61035156, 305175781};
int main ()
{
ifstream fin("fact.in");
ofstream fout("fact.out");
fin>>p;
int n=0,nr=1;
for (int i=0;i<=12;i++)
if (p<b[i] && p>=b[i]-i)
{
fout<<"-1";
nr=0;
}
if (nr)
{
if (p==0) fout<<"1";
else
{
int i=0;
while (p>b[i]) i++;
int s=a[i-1];
int d=p-b[i-1];
n=s+d*5;
for (int j=s+5;j<a[i] && j<n;j+=5)
{
int nri=j;
while((nri/5)%5==0)
{
d--;
nri/=5;
}
}
n=s+d*5;
fout<<n;
}
}
return 0;
}