Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #1001466) | Cod sursa (job #1304518) | Cod sursa (job #173879)
Cod sursa(job #173879)
#include<fstream.h>
#include<math.h>
long long s=1,d=2000000,m,k,c,z=0,n,p;
int main()
{
ifstream f("fact.in");
ofstream g("fact.out");
f>>n;
if(n==0) g<<"1";
else
{
m=(s+d)/2;
while (z!=n&&s<=d)
{ z=0; k=5; p=1;
while(k<=m)
{
c=m/k; z+=c;
p++;
k=pow(5,p);
}
if(z<n) {s=m+1; m=(s+d)/2;}
else if(z>n) {d=m-1; m=(s+d)/2;}
}
if(z==n)
{
while (z==n){
m=m-1;
z=0; k=5; p=1;
while(k<=m)
{
c=m/k; z+=c;
p++;
k=pow(5,p);
}
}
g<<m+1;
}
else g<<"-1";
}
f.close();
g.close();
return 0;
}