Pagini recente » Cod sursa (job #1724681) | Cod sursa (job #1492883) | Cod sursa (job #2816660) | Cod sursa (job #1845619) | Cod sursa (job #3155633)
#include <bits/stdc++.h>
using namespace std;
constexpr int N = 5e6;
constexpr array<int, 3> primes = {2, 3, 5};
array<array<int, N + 1>, 3> cnt_prime;
int main() {
freopen("pascal.in", "r", stdin);
freopen("pascal.out", "w", stdout);
ios::sync_with_stdio(false);
cin.tie(nullptr);
for (int i = 0; i < 3; i++) {
for (int j = primes[i]; j <= N; j *= primes[i]) {
for (int k = j; k <= N; k += j) {
cnt_prime[i][k]++;
}
}
for (int j = 1; j <= N; j++) {
cnt_prime[i][j] += cnt_prime[i][j - 1];
}
}
int r, d;
cin >> r >> d;
array<int, 3> req = {};
int tmp = d;
for (int i = 0; i < 3; i++) {
while (tmp % primes[i] == 0) {
tmp /= primes[i];
req[i]++;
}
}
int ans = 0;
for (int i = 0; i <= r; i++) {
bool ok = true;
for (int j = 0; j < 3; j++) {
ok &= cnt_prime[j][r] - cnt_prime[j][i] - cnt_prime[j][r - i] >= req[j];
}
ans += ok;
}
cout << ans << '\n';
return 0;
}