Pagini recente » Cod sursa (job #2703595) | Cod sursa (job #2173971) | Cod sursa (job #2829238) | Cod sursa (job #1639820) | Cod sursa (job #2862166)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
uint64_t P;
uint64_t maxl=0x6765c793fa10079d;
uint64_t nr0(uint64_t nr)
{
uint64_t r=0;
for(uint64_t i=5;true;i*=5)
{
r+=nr/i;
if(nr<i||i==maxl)break;
}
return r;
}
int main()
{
fin>>P;
uint64_t st=0,dr=0xFFFFFFFFFFFFFFFF;
uint64_t mij =st+(dr-st+1)/2;
while(st<dr)
{
mij=st+(dr-st+1)/2;
uint64_t r=nr0(mij);
if(r<P)
{
st=mij+1;
}else if(r>P)
{
dr=mij;
}else{
dr=mij;
}
}
mij=st+(dr-st+1)/2;
if(nr0(mij)==P)
fout <<mij;
else fout << -1;
return 0;
}