@[Caiyingqi_01](/user/670355) 求关注~
```cpp
#include<iostream>
#include <cstdio>
using namespace std;
#define maxn 10000000
struct node
{
int x = 1;
int prime = 0;
int vis = 0;
}pri[maxn];
void Screening(int n)
{
pri[0].vis = pri[1].vis = 1;
int cnt = 0;
for (int i = 2; i <= n; i++)
{
if (!pri[i].vis) pri[cnt++].prime = i;
for (int j = 0; j < cnt && i * pri[j].prime <= n; j++)
{
pri[i * pri[j].prime].vis = 1;
if (i % pri[j].prime == 0) break;
}
}
}
int main()
{
int n, m;
scanf("%d %d", &n, &m);
Screening(m);
int l, r;
int ans = 0;
for (int i = 2; i <= m; i++)
{
if (!pri[i].vis)
pri[i].x += pri[i - 1].x;
else
pri[i].x = pri[i - 1].x;
}
for (int i = 0; i < n; i++)
{
scanf("%d %d", &l, &r);
if (l >= 1 && l <= m && r >= 1 && r <= m)
{
ans = pri[r].x - pri[l - 1].x;
printf("%d\n", ans);
ans = 0;
l = 0;
r = 0;
}
else printf("Crossing the line\n");
}
return 0;
}
```
by JustinXiaoJunyang @ 2022-08-19 17:21:46
关注了,但不知道我的代码哪里出了问题呢
by Cyq_Lyw_01 @ 2022-08-19 17:25:51
@[Caiyingqi_01](/user/670355) 你的那个 `if` 语句少了两个判断条件 `l >= n` 和 `r < 1`
by jimmyfj @ 2022-08-19 18:13:10
@[Caiyingqi_01](/user/670355) 调好了, 记得开 `long long`
```cpp
#include <bits/stdc++.h>
using namespace std;
long long n, m, l, r, ans, a[1000001], cnt = 1;
bool vis[1000001];
void init(){
for(int i = 2; i <= n; i++){
if(!vis[i]){
a[cnt] = i;
cnt++;
}
for(int j = 1; j < cnt; j++){
if(1ll * i * a[j] > n){
break;
}
vis[i * a[j]] = true;
if(i % a[j] == 0){
break;
}
}
}
}
int main(){
cin >> m >> n;
init();
for(int i = 0; i < m; i++){
cin >> l >> r;
if(l < 1 || r > n || l >= n || r < 1){
cout << "Crossing the line" << endl;
}
else{
ans = 0;
for(int j = 1; a[j] <= r; j++){
if(a[j] >= l){
ans++;
}
}
cout << ans << endl;
}
}
return 0;
}
```
by jimmyfj @ 2022-08-19 18:25:01
@[JustinXiaoJunyang](/user/397137) 别没事就求关注, 人家还得给你关注当回报是吧, 求关注这么急的吗
by jimmyfj @ 2022-08-19 18:28:32
直接付个代码上去就能求关注了?又没找到别人问题,你还想让别人copy你的?
by XHY20180718 @ 2022-09-23 23:56:30