Pagini recente » Cod sursa (job #1996231) | Cod sursa (job #22146) | Cod sursa (job #363413) | Cod sursa (job #1017544) | Cod sursa (job #2336422)
#include <fstream>
#include <cmath>
using namespace std;
int cat5(long long n)
{
int c=0;
while(n%5==0 && n>=5)
{
c++;
n/=5;
}
return c;
}
int cat0(long long n)
{ int c=0;
for(long long i=5;i<=n;i+=5)
{
c+=cat5(i);
}
return c;
}
long long cbin(long long p)
{
int msk,pos=0;
for(msk=1<<20;msk>0;msk/=2)
{
if(cat0(msk+pos)<=p)
pos+=msk;
}
if(cat0(pos)==p)
return pos-pos%5;
else
return -1;
}
ifstream cin("fact.in");
ofstream cout("fact.out");
int main()
{
long long sg,c5,p,i,c=0;
cin>>p;
if(p==0){
cout<<1;
return 0;}
else
cout<<cbin(p);
return 0;
}