Pagini recente » Cod sursa (job #256963) | Cod sursa (job #1474592) | Cod sursa (job #628084) | Cod sursa (job #957065) | Cod sursa (job #673318)
Cod sursa(job #673318)
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long P,x,i,y,j,z,st,dr,a,b;
int main()
{f>>P;
if(P==0)
g<<'1';
else
{j=0;
i=1;
while(j==0)
{x=floor(pow(5,i));
z=0;
while(x>0)
{
x=x/5;
z=z+x;
}
if(P<z)
j=i;
else
i++;
}
st=floor(pow(5,j-1));
dr=floor(pow(5,j));
a=st;
b=dr;
while((x!=P)&&(st<b-4)&&(dr>a+4))
{y=(st+dr)/2;
z=y;
x=0;
while(z>0)
{
z=z/5;
x=x+z;
}
if(x==P)
{
while(y%5!=0)
y--;
g<<y;
}
else
{
if(x>P)
dr=y;
else
st=y;
}
}
if(x!=P)
g<<"-1";}
return 0;
}