码迷,mamicode.com
首页 > 其他好文 > 详细

luoguP1865A%Bproblem

时间:2018-12-02 19:16:12      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:new   out   get   stream   mes   blank   problem   http   sum   

原题地址

思路

使用筛表法筛除1~m的素数,然后累计1~m的素数个数,最后输出sum[r]-sum[l-1]即可。

代码

#include<iostream>
using namespace std;
int n,m,l,r,sum[1000010];
bool a[1000010];
int main(){
cin>>n>>m;
for(int i=2;i*i<=m;i++){
if(!a[i]){
for(int j=i;j*i<=m;j++){
a[i*j]=true;
}
}
}
a[1]=true;
for(int i=1;i<=m;i++){
if(!a[i]){
sum[i]=sum[i-1]+1;
} else sum[i]=sum[i-1];
}
for(int i=1;i<=n;i++){
cin>>l>>r;
if(l<1||l>m||r<1||r>m){
cout<<"Crossing the line"<<endl;
continue;
}
cout<<sum[r]-sum[l-1]<<endl;
}
return 0;
}

  

luoguP1865A%Bproblem

标签:new   out   get   stream   mes   blank   problem   http   sum   

原文地址:https://www.cnblogs.com/zhouxuanbodl/p/10054519.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!