Pagini recente » Cod sursa (job #785232) | Cod sursa (job #155727) | Cod sursa (job #1971087) | Cod sursa (job #3294044) | Cod sursa (job #2336418)
#include <fstream>
#include <cmath>
using namespace std;
unsigned long long log5(unsigned long long n)
{
int l=0;
while(n%5==0)
{
n/=5;
l++;
}
return l;
}
long long powe(int x,int y)
{
int i=0,p=1;
for(i=1;i<=y;++i)
{
p*=x;
}
return p;
}
int cat5(int n)
{
int c=0;
while(n%5==0 && n>=5)
{
c++;
n/=5;
}
return c;
}
int cat0(int n)
{ int c=0;
for(int i=5;i<=n;i+=5)
{
c+=cat5(i);
}
return c;
}
int cbin(int 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()
{
unsigned long long sg,c5,p,i,c=0;
cin>>p;
if(p==0){
cout<<1;
return 0;}
else
cout<<cbin(p);
return 0;
}