Pagini recente » Cod sursa (job #1705521) | Cod sursa (job #320917) | Cod sursa (job #1501132) | Cod sursa (job #188307) | Cod sursa (job #1868626)
#include <cstdio>
#define MIN(A,B) A <= B ? A : B
#define INF 100000000
using namespace std;
FILE *f = freopen("fact.in", "r", stdin);
FILE *g = freopen("fact.out", "w", stdout);
int p;
int ret(int p) {
if(p == 0) return 1;
int nr2 = 0, nr5 = 0;
int n = 1, k = 1;
bool ok = false;
while(!ok) {
n = k;
while(n % 2 == 0) {
nr2 ++; n/= 2;
}
while(n % 5 == 0) {
nr5 ++; n/= 5;
}
if(MIN(nr2, nr5) == p)
return k;
k ++;
}
}
int verif(int n) {
int sum = 0, p = 5;
while(p <= n) {
sum += n / p;
p *= 5;
}
return sum;
}
int caut_binar() {
int ls = 0, ld = INF;
while(ls <= ld) {
int mij = (ls + ld) / 2;
int val = verif(mij);
if(val == p)
return mij - mij%5;
else if(val < p)
ls = mij + 1;
else if(val > p)
ld = mij - 1;
}
return -1;
}
int main() {
scanf("%d", &p);
printf("%d ", caut_binar());
//printf("%d", verif(45, 9));
return 0;
}