错误记录
代码:
#include<bits/stdc++.h>
using namespace std;
long long n, B;
long long sushu[170];
void aishishai() { // 埃式筛,绝对不是不会写线性筛
sushu[0] = 2;
long long it = 1;
for (long long i = 3; i <= 1000; i += 2) {
if (i % 2 == 0) continue;
bool flag = 1;
for (long long j = 3; j < i; j += 2) {
if (i % j == 0) {
flag = 0;
break;
}
}
if (flag) sushu[it++] = i;
}
return ;
}
long long yinshu(long long n1) { // 求n1的最大质因数
long long it = 0;
while (sushu[it++] <= n1) {}
it--;
for (long long i = it; i >= 0; i--) {
if (n1 % sushu[i] == 0) return sushu[i];
}
return 0;
}
int main() {
cin >> n >> B;
aishishai(); // 先筛素数
long long ans = n > 0; // 关于1的最大质因数这件事
for (long long i = 2; i <= n; i++) {
if (yinshu(i) <= B) ans++; // 判断B-smooth数
}
cout << ans << endl;
return 0;
}
感谢