#include <iostream>
#include <vector>
using namespace std;
const int MAXN = 1e7 + 1;
vector<bool> is_prime(MAXN, true);
vector<int> likes_count(MAXN, 0);
void sieve() {
is_prime[0] = is_prime[1] = false;
for (int i = 2; i * i < MAXN; ++i) {
if (is_prime[i]) {
for (int j = i * i; j < MAXN; j += i) {
is_prime[j] = false;
}
}
}
}
void preprocess() {
sieve();
for (int i = 2; i < MAXN; ++i) {
if (is_prime[i]) {
likes_count[i] = 1;
}
}
for (int i = 2; i < MAXN; ++i) {
if (is_prime[i]){
for (int j = i; j * i < MAXN; ++j) {
if (is_prime[j]) {
likes_count[i * j] = 1;
}
}
}
}
for (int i = 1; i < MAXN; ++i) {
likes_count[i] += likes_count[i - 1];
}
}
int main(){
preprocess();
int q;
cin>>q;
while(q--){
int L, R;
cin >> L >> R;
cout << likes_count[R] - likes_count[L - 1] << endl;
}
return 0;
}
就是运行的时候,无法输入