POJ 3978
2012-10-02 13:28
218 查看
题意:求区间[a,b]内所含质数个数。
题解:筛一遍素数,二分查找。
View Code
题解:筛一遍素数,二分查找。
View Code
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int mr=100001; bool notp[mr]; int pr[mr]; int pn; void getpri()//筛素数 { memset(notp,0,sizeof(notp)); for(int i=2; i<mr; i++) { if(!notp[i]) { pr[pn++]=i; } for(int j=0; j<pn && i*pr[j]<mr; j++) { int k=i*pr[j]; notp[k]=1; if(i%pr[j]==0) break; } } } int cac(int x) { if(x<2) return 0; int mid,ll=0,rr=pn-1,ans=0; while(ll<=rr) { mid=(ll+rr)>>1; if(pr[mid]>x) rr=mid-1; else ll=mid+1,ans=mid; } return ans+1; } int main() { pn=0; getpri(); int a,b; while(scanf("%d%d",&a,&b),a!=-1||b!=-1) { printf("%d\n",cac(b)-cac(a-1)); } return 0; }
相关文章推荐
- POJ 3978(求素数)
- POJ 3978 Primes 已被翻译 可能会
- POJ 3978 Primes(素数筛选法)
- POJ 3978 Primes(求范围素数个数)
- POJ3978
- poj 3978 primes
- POJ 3978 Primes(求范围素数个数)
- poj 3978 Primes
- POJ 3978(求素数)
- POJ 3978(求素数)
- poj 2533 Longest Ordered Subsequence
- POJ 1201 Intervals
- POJ 2255 Tree Recovery【二叉树重建】
- POJ 2942 Knights of the Round Table
- poj 1321
- POJ 2774 Long Long Message(后缀数组)
- POJ 1006 数论简单题
- poj 3648 2-SAT建图+topsort输出结果
- POJ 2152 Fire(树形DP)
- POJ-3009