lightoj1197Help Hanzo(二次筛)
来源:互联网 发布:淘宝单号充值 编辑:程序博客网 时间:2024/05/17 06:10
原题链接:http://lightoj.com/volume_showproblem.php?problem=1197
题目大意:查询一个区间[a,b]内的质数个数,其中
#include <stdio.h>#include<iostream>#include<cmath>#include<cstring>using namespace std;typedef long long LL;LL pri[100010];LL vis[100010];int cnt=0;void init(){ for(int i=2;i<=100000;i++){ if(!vis[i])pri[++cnt]=(LL)i; for(int j=1;j<=cnt&&pri[j]*i<=100000;j++){ vis[pri[j]*i]=1; if(i%pri[j]==0)break; } }}int main(void){ int t,cas=0;// freopen("1197.in","r",stdin);// freopen("1197.out","w",stdout); init(); scanf("%d",&t); while(t--){ LL a,b; scanf("%lld%lld",&a,&b); if(a==1)a++; LL mx=b-a; for(LL i=0;i<=mx;i++)vis[i]=0; for(int i=1;i<=cnt&&pri[i]<b;i++){ LL k=(a-1)/pri[i]+1; if(k==1)k++; for(LL j=k*pri[i];j<=b;j+=pri[i]){ vis[j-a]=1; } } LL ans=0; for(LL i=0;i<=mx;i++)if(!vis[i])ans++; printf("Case %d: %lld\n",++cas,ans); } return 0;}
0 0
- lightoj1197Help Hanzo(二次筛)
- Help Hanzo(素数筛)
- 【区间筛法】 LightOJ 1197 Help Hanzo
- Help Hanzo (素数筛+区间枚举)
- LightOJ - 1197 Help Hanzo 素数筛
- Help Hanzo light OJ 1197 “素数筛”
- LightOJ 1197 - Help Hanzo (模拟筛素法区间筛素)
- LightOJ 1197 Help Hanzo(区间素数筛)
- Help Hanzo
- LightOJ 1197 Help Hanzo
- Help Hanzo LightOJ
- LightOJ 1197 Help Hanzo
- LightOJ1197 Help Hanzo
- 二次筛法
- 二次筛素数!
- Light OJ 1197 - Help Hanzo
- Light oj 1197 - Help Hanzo
- light oj 1197 Help Hanzo
- 常用DOS命令
- redhat挂载ntfs格式硬盘
- Android 亲身经历面试题总结(第三回合)
- textView跑马灯效果实现
- ubuntu挂载windows共享文件夹的命令
- lightoj1197Help Hanzo(二次筛)
- android控件按下时出现黄色背景
- Codeforces Round #356 (Div. 1) C
- flask-sqlalchemy实例
- 350. Intersection of Two Arrays II
- 洗牌(程序阅读)
- 浅谈Web前端关于学习Servlet一些心得欢迎大神补充
- IO-文件切割和合并。
- ORACLE表空间的使用情况