Pagini recente » Cod sursa (job #75739) | Cod sursa (job #2082521) | Cod sursa (job #1622359) | Cod sursa (job #2269149) | Cod sursa (job #581341)
Cod sursa(job #581341)
#include<iostream>
#include<fstream>
using namespace std;
long c;
long nr0(long x)
{
int c=x/5;
int nr=0;
//nr=c;
while(c)
{
nr+=c;
c/=5;
}
return nr;
}
long caut_bin(long infe,long sup,long p)
{
long r;
if((sup==infe) || (sup==infe+1))return -1;
else {
c=(infe+sup)/2;
r=nr0(c);
if(r==p)return c;
else if(r<p)return caut_bin(c+1,sup,p);
else if(p<r)return caut_bin(infe,c-1,p);
}
}
int main()
{
long nr2=0,nr5=0;
long p,t=1,y,inf,sup,u;
ifstream f("fact.in");
ofstream g("fact.out");
f>>p;
inf=0;
sup=100000000;
u=caut_bin(inf,sup,p);
if(u==-1)g<<-1;
else {
while(u%5!=0)
u--;
g<<u;
}
/*if(p==5)g<<-1;
else
if(!p)g<<1;
else {
while(nr5<=p-1)
{
y=t;
while(y%5==0 && nr5<=p-1)
{
nr5++;
y/=5;
}
t++;
}
}
g<<t-1;*/
return 0;
}