Cod sursa(job #2196281)
| Utilizator | Data | 18 aprilie 2018 23:04:34 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.57 kb |
#include <stdio.h>
int nr_zerouri(int x){
int ras = 0, t = 5;
while(x >= t){
ras += (x/t);
t *= 5;
}
return ras;
}
int main(){
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
int p;
scanf("%d", &p);
int st = 1, dr = p*5;
while(st <= dr){
int mij = (st+dr)/2;
if(nr_zerouri(mij) < p)
st = mij + 1;
else
dr = mij - 1;
}
if(nr_zerouri(st) == p)
printf("%d", st);
else
printf("%d", -1);
return 0;
}
