Pagini recente » Cod sursa (job #1744438) | Cod sursa (job #2614879) | Cod sursa (job #1465770) | Cod sursa (job #454154) | Cod sursa (job #2254009)
#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;
break;
} else if (numbrOfZeros((mijloc)) < n){
stanga = mijloc + 1;
} else if (numbrOfZeros(mijloc) > n){
dreapta = mijloc - 1;
}
}
if (poz == -1){
g << poz;
return 0;
}
poz = poz - poz % 5;
g << poz;
return 0;
}