Pagini recente » Cod sursa (job #26624) | Cod sursa (job #1537163) | Cod sursa (job #2394413) | Cod sursa (job #1613820) | Cod sursa (job #3174959)
#include <iostream>
#include <cmath>
#include <fstream>
std::ifstream fin("fact.in");
std::ofstream fout("fact.out");
unsigned long long Zero_La_Final_Fact(unsigned int n) {
n-=n%5;
unsigned long long s=0,p=5;
while (p<=n){
s+=n/p;
p*=5;
}
return s;
}
int main()
{
unsigned int p;
fin >> p;
if (p==0) {
fout << '1';
return 0;
}
unsigned int r=24999999,l=1,probe=(l+r)/2,ans=r+1;
while (l<=r) {
unsigned int zeroes=Zero_La_Final_Fact(probe);
if (zeroes>=p) {
if (zeroes == p && ans > probe) {
ans=probe;
}
l=probe+1;
} else {
r=probe-1;
}
probe=(l+r)/2;
}
if (ans==25000000) { fout << "-1"; } else {
fout << ans;}
return 0;
}