Pagini recente » Cod sursa (job #1718340) | Cod sursa (job #2021578)
#include <cstdio>
FILE *fin, *fout;
#define MAX 5000000
int r, d;
int d2[MAX + 1], d3[MAX + 1], d5[MAX + 1];
int main() {
fin = fopen("pascal.in", "r");
fout = fopen("pascal.out", "w");
fscanf(fin, "%d%d", &r, &d);
int ans = 0, pow2 = 0, pow3 = 0, pow5 = 0;
for (int i = 1; i <= r; i++) {
if (i % 2 == 0)
d2[i] = d2[i / 2] + 1;
if (i % 3 == 0)
d3[i] = d3[i / 3] + 1;
if (i % 5 == 0)
d5[i] = d5[i / 5] + 1;
}
if (d == 2) {
for (int j = 0; j < r; j++) {
pow2 += d2[r - j] - d2[j + 1];
if (pow2 > 0)
ans++;
}
}
if (d == 3) {
for (int j = 0; j < r; j++) {
pow3 += d3[r - j] - d3[j + 1];
if (pow3 > 0)
ans++;
}
}
if (d == 4) {
for (int j = 0; j < r; j++) {
pow2 += d2[r - j] - d2[j + 1];
if (pow2 > 1)
ans++;
}
}
if (d == 5) {
for (int j = 0; j < r; j++) {
pow5 += d5[r - j] - d5[j + 1];
if (pow5 > 0)
ans++;
}
}
if (d == 6) {
for (int j = 0; j < r; j++) {
pow2 += d2[r - j] - d2[j + 1];
pow3 += d3[r - j] - d3[j + 1];
if (pow2 > 0 && pow3 > 0)
ans++;
}
}
fprintf(fout, "%d", ans);
fclose(fin);
fclose(fout);
return 0;
}