这是一道素数判断加前缀和第题目
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n, m, ans[1000005];
bool f(int x)
{
if (x <= 1)
return false;
for (int i = 2; i <= sqrt(x); i++)
if (x % i == 0)
return false;
return true;
}
int main()
{
scanf("%d %d", &n, &m);
for (int i = 1; i <= m; i++)
{
if (f(i))
ans[i] = ans[i - 1] + 1;
else
ans[i] = ans[i - 1];
}
while (n--)
{
int l, r;
scanf("%d %d", &l, &r);
if (l < 1 or r > m)
printf("Crossing the line\n");
else
printf("%d\n", ans[r] - ans[l - 1]);
}
return 0;
}