首先本题正解应该要涉及到前缀和
这毋庸置疑
但是本蒟蒻没有用到该算法就水过了
(所以说建议加强啊)
以下是我的做法
(注:这绝非正解!!!)
bool st[N];
for(int i=1;i<=m;i++)
{
if(zhi(i)) st[i]=1;
}
简单来说就是把 1~m 范围内所有数都打一遍暴力判断素数
然后用 st[] 数组存储
之后的过程中在 l~r 区间内的数直接在 st[] 里找
for(int i=l;i<=r;i++)
{
if(st[i]) cnt++;
}
加强数据扩大m的范围就可以了