Pagini recente » Cod sursa (job #1206661) | Cod sursa (job #1056167) | Cod sursa (job #264970) | Cod sursa (job #2109937) | Cod sursa (job #1218216)
#include <iostream>
#include <fstream>
#define N_max 3000000
using namespace std;
unsigned long long a[N_max],n,p;
ifstream fin("fact.in");
ofstream fout("fact.out");
int search(unsigned long long val,unsigned long long min,unsigned long long max)
{
unsigned long long mid=(min+max)/2;
if(min==max&&val!=min)
return -1;
if(val==a[mid])
return mid*5;
else
if(val>a[mid])
return search(val,mid+1,max);
else
return search(val,min,mid-1);
}
int main()
{
fin>>p;
if(p==0)
{
fout<<1;
return 0;
}
a[0]=0;
n=1;
while(n<N_max)
{
for(unsigned long long i=n;i<N_max;i+=n)
a[i]++;
n*=5;
}
for(unsigned long long i=2;i<N_max;i++)
{
a[i]+=a[i-1];
}
fout<<search(p,0,N_max);
return 0;
}