Pagini recente » Cod sursa (job #1284331) | Cod sursa (job #932045) | Cod sursa (job #1686074) | Istoria paginii utilizator/lordanta | Cod sursa (job #2797984)
#include <iostream>
#include <fstream>
#include <limits.h>
using namespace std;
ifstream f;
ofstream g;
unsigned long long INF=LLONG_MAX,p;
unsigned long long nrz(unsigned long long n)
{
unsigned long long s=0,p=5;
while(p<=n)
{
s+=n/p;
p*=5;
}
return s;
}
unsigned long long BINARY()
{
unsigned long long st=1;
unsigned long long dr=INF;
unsigned long long sol=0;
while(st<=dr)
{
unsigned long long mid=(st+dr)>>1;
unsigned long long nrzero=nrz(mid);
if(nrzero==p)
{
sol=mid;
dr=mid-1;
}
else{
if(nrzero<p)
{
st=mid+1;
}
else{
dr=mid-1;
}
}
}
return sol;
}
int main()
{
f.open("fact.in");
g.open("fact.out");
f>>p;
g<<BINARY();
return 0;
}