Cod sursa(job #1268674)
| Utilizator | Data | 21 noiembrie 2014 11:59:26 | |
|---|---|---|---|
| Problema | Factorial | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <cstdio>
using namespace std;
int caut_bin(int *A, int len, int value) {
int poz = 0; int pas = 1<<4;
while (pas >>= 1)
if ((pas + poz < len) && (A[pas + poz] <= value))
poz += pas;
return poz;
}
int main() {
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
int N;
scanf("%d", &N);
int v[16], v_len = 0;
for (int k = 1; k <= N; k *= 5) {
v[v_len] = k;
v_len++;
}
for (int i = 5; i < N; i += 5) {
N -= caut_bin(v, v_len, i);
}
printf("%d", 5*N);
return 0;
}
