Pagini recente » Cod sursa (job #3227763) | Cod sursa (job #3169856) | Cod sursa (job #3123032) | Cod sursa (job #1217035) | Cod sursa (job #2439668)
#include <stdio.h>
#define min(a, b) ((a) > (b) ? (b) : (a))
#define MAX 0x3f3f3f3f
/*
int count_zeros1(int n) {
int t = 1, p = 0;
int count = 0;
while (t < n) {
t *= 5;
p++;
for (int i = 1 ; i * t <= n ; i++) {
if (!(i % 5)) continue;
count += p;
}
}
return count;
}
*/
int count_zeros(int n) {
int t = 1, p = 0;
int count = 0;
while (t < n) {
t *= 5;
p++;
int f_count = n / t;
f_count -= f_count / 5;
count += f_count * p;
}
return count;
}
void solve1(long long p) {
int n;
int step, z1;
int z2 = MAX, res = MAX;
for (step = 1 ; step < MAX ; step <<= 1);
step >>= 1;
for (n = 0 ; step ; step >>= 1) {
int m = n | step;
z1 = count_zeros(m);
if (z1 <= z2 && z1 >= p && m < res) { z2 = z1; res = m; }
// fprintf(stderr, "%d %d\n", m, z1);
if (z1 < p)
n = m;
}
if (z2 == p)
printf("%d\n", res);
else
printf("-1\n");
}
void solve2(long long p) {
for (int i = 1 ; ; i++) {
int z = count_zeros(i);
if (z >= p) {
if (z > p) printf("-1\n");
else printf("%d\n", i);
return;
}
}
}
int main() {
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
long long p;
scanf("%llu", &p);
if (!p) {
printf("1\n");
return 0;
}
// for (p = 1 ; p < 10000 ; p++) {
// solve1(p);
// solve2(p);
// }
solve2(p);
return 0;
}