题解
2026-03-29 14:53:16
发布于:浙江
0阅读
0回复
0点赞
#include <iostream>
#include <cstring>
using namespace std;
const int MAX = 1e6 + 5;
int max_prime[MAX];
void f(int n) {
memset(max_prime, 0, sizeof(max_prime));
for (int i = 2; i <= n; i++) {
if (max_prime[i] == 0) {
for (int j = i; j <= n; j += i) {
max_prime[j] = i;
}
}
}
}
int main() {
int n, b;
cin >> n >> b;
f(n);
int ans = 0;
for (int i = 1; i <= n; i++) {
if (i == 1) {
ans++;
}
else if (max_prime[i] <= b) {
ans++;
}
}
cout << ans << endl;
return 0;
}
这里空空如也







有帮助,赞一个