Pagini recente » Cod sursa (job #1532096) | Cod sursa (job #2199206) | Cod sursa (job #1912262) | Cod sursa (job #525913) | Cod sursa (job #2860715)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
uint64_t P;
uint64_t nr0(uint64_t nr)
{
uint64_t r=0;
for(uint64_t i=5;i<=nr;i*=5)
{
r+=nr/i;
}
return r;
}
int main()
{
fin>>P;
uint64_t st=0,dr=0xffffffff;
uint64_t mij = st/2+dr/2 + ((st&1)+(dr&1))/2;
uint64_t last_result=mij;
while(st<dr)
{
mij=st/2+dr/2 + ((st&1)+(dr&1))/2;
uint64_t r=nr0(mij);
if(r<P)
{
st=mij+1;
}else if(r>P)
{
dr=mij-1;
}else {
dr=mij-1;
last_result=mij;
}
}
if(nr0(last_result)==P)
fout <<last_result;
else fout << -1;
return 0;
}