Pagini recente » Cod sursa (job #112146) | Cod sursa (job #207530) | Cod sursa (job #2377476) | Cod sursa (job #807019) | Cod sursa (job #2192598)
#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pb push_back
#define mp make_pair
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pdd pair<ld, ld>
#define all(x) (x).begin(), (x).end()
#define fi first
#define se second
const int kMaxR = 5e6 + 5;
int f2[kMaxR];
int f3[kMaxR];
int f5[kMaxR];
int main() {
cin.sync_with_stdio(false);
ifstream cin("pascal.in");
ofstream cout("pascal.out");
int r, d;
cin >> r >> d;
for (int i = 2; i <= r; i++) {
f2[i] = f2[i - 1];
int x = i;
while (x % 2 == 0) {
x /= 2;
f2[i]++;
}
f3[i] = f3[i - 1];
x = i;
while (x % 3 == 0) {
x /= 3;
f3[i]++;
}
f5[i] = f5[i - 1];
x = i;
while (x % 5 == 0) {
x /= 5;
f5[i]++;
}
}
return 0;
int ans = 0;
for (int i = 1; i <= r / 2; i++) {
int F2 = f2[r] - f2[i] - f2[r - i];
int F3 = f3[r] - f3[i] - f3[r - i];
int F5 = f5[r] - f5[i] - f5[r - i];
if (d == 2) {
ans += (F2 > 0);
} else if (d == 3) {
ans += (F3 > 0);
} else if (d == 4) {
ans += (F2 > 1);
} else if (d == 5) {
ans += (F5 > 0);
} else {
ans += (F2 > 0 && F3 > 0);
}
}
cout << ans << '\n';
return 0;
}