建议降橙
查看原帖
建议降橙
1004505
mhs2023楼主2024/6/26 14:11

这是一道素数判断加前缀和第题目

#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;
}
2024/6/26 14:11
加载中...