Pagini recente » Cod sursa (job #2181515) | Cod sursa (job #2303256) | Cod sursa (job #2175460) | Cod sursa (job #3148417) | Cod sursa (job #2253988)
#include <bits/stdc++.h>
using namespace std;
int numbrOfZeros(int x){
int nr = 0, put = 5;
while(x >= put){
nr += x / put;
put *= 5;
}
return nr;
}
int main() {
ifstream f("fact.in");
ofstream g("fact.out");
int n;
int poz = -1;
f >> n;
int stanga, dreapta;
stanga = 1;
dreapta = n * 5;
if (n == 0){
g << 1;
return 0;
}
while (stanga <= dreapta){
int mijloc = (stanga + dreapta) / 2;
if (numbrOfZeros(mijloc) == n){
poz = mijloc;
g << poz;
return 0;
} else if (numbrOfZeros((mijloc)) < n){
stanga = mijloc + 1;
} else if (numbrOfZeros(mijloc) > n){
dreapta = mijloc - 1;
}
}
g << poz;
return 0;
}