Pagini recente » Cod sursa (job #1039534) | Cod sursa (job #1744166) | Cod sursa (job #472244) | Cod sursa (job #536891) | Cod sursa (job #586425)
Cod sursa(job #586425)
#include <cstdio>
#include "limits.h"
long long getZero(long long x){
long long sum = 0;
for (long long i = 5; i <= x; i *= 5)
sum += x/i;
return sum;
}
int main(){
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
long long P;
scanf("%llu", &P);
if (!P){
printf("1");
return 0;
}
long long a = 0, b = LLONG_MAX;
long long c = (a + b) / 2;
while (getZero(c) != P && a < b){
if (P < getZero(c)) b = c - 1;
else a = c + 1;
c = (a + b)/ 2;
// printf("%llu %llu %llu\n", a, c, b);
}
if (getZero(c) == P) {
//ca sa fie minimul
c = c - c % 5;
printf("%llu", c);
}
else printf("-1");
//printf("\n%llu %llu", P, getZero(c));
return 0;
}