Pagini recente » Cod sursa (job #2138594) | Cod sursa (job #3197087) | Cod sursa (job #1476355) | Cod sursa (job #1809915) | Cod sursa (job #2537659)
// incerc sa vad de ce solutia precedenta nu dadea solutia optima
#include <fstream>
std::ifstream f("fact.in");
std::ofstream g("fact.out");
long long n;
long long Count0(long long n){
long long power = 5;
long long sol = 0;
while(power <= n){
sol += n / power;
power *= 5;
}
return sol;
}
long long search(long long n){
long long left = 1;
long long right = 5 * n;
long long sol = -1;
while(left <= right){
long long mid = (left + right) / 2;
if(Count0(mid) >= n){
right = mid - 1;
sol = mid;
}else{
left = mid + 1;
}
}
return sol;
}
int main(){
f >> n;
if(n == 0){
g << 1;
return 0;
}
long long s = search(n);
while(Count0(s - 1) == n && s > 1)
s--;
if(Count0(s) != n)
g << -1;
else
g << s;
return 0;
}