Cod sursa(job #2283049)
| Utilizator | Data | 14 noiembrie 2018 21:49:59 | |
|---|---|---|---|
| Problema | Pascal | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <stdio.h>
#define MAXN 5000000
FILE *fin, *fout;
int fact[MAXN + 1];
int main() {
fin = fopen("pascal.in","r");
fout = fopen("pascal.out", "w");
int N, D;
fscanf(fin, "%d %d", &N, &D);
for(int i = 1; i <= N; i++) {
fact[i] = fact[i - 1];
int num = i;
int nr = 0;
while(num % D == 0) {
num /= D;
nr++;
}
fact[i] += nr;
}
int ans = 0;
for(int i = 1; i < N; i++) {
if(fact[N] - fact[i] - fact[N - i] >= 0) {
ans++;
}
}
fprintf(fout, "%d", ans);
fclose(fin);
fclose(fout);
return 0;
}
