Pagini recente » Cod sursa (job #414753) | Cod sursa (job #2552678) | Cod sursa (job #3229613) | Cod sursa (job #742310) | Cod sursa (job #1741522)
#include <cstdio>
using namespace std;
int legendre(int n, int f){
int ans = 0;
long long cf = f;
while (cf <= n){
ans += n / cf;
cf *= f;
}
return ans;
}
int bs(int st, int dr, int p){
int med, last = 1;
while (st <= dr){
med = (st + dr) >> 1;
if (legendre(med, 5) <= p){
last = med;
st = med + 1;
}
else{
dr = med - 1;
}
}
return last;
}
int main(){
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
int p, ans;
scanf("%d", &p);
if (p == 0)
printf("1\n");
else{
ans = bs(1, 40000010, p) / 5 * 5;
if (legendre(ans, 5) != p)
printf("-1\n");
else
printf("%d\n", ans);
}
return 0;
}