http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1246

求区间内素数个数,经典问题,区间长度10^6,数的取值最多能到10^12(此题范围稍小)

用筛法搞出[2,根号b]范围内的素数,用这些素数再去筛[a,b]

一个吐血的trick,1不是素数

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std ;
typedef long long ll ;
bool prime[] ;
bool prime1[] ;
int main()
{
int t ;
scanf("%d",&t) ;
while(t--)
{
ll a,b ;
scanf("%lld%lld",&a,&b) ;
for(ll i= ;i*i<=b ;i++)prime[i]=true ;
for(ll i= ;i<=b-a ;i++)prime1[i]=true ;
for(ll i= ;i*i<=b ;i++)
{
if(prime[i])
{
for(ll j=*i ;j*j<=b ;j+=i)prime[j]=false ;
for(ll j=max(2LL,(a+i-)/i)*i ;j<=b ;j+=i)prime1[j-a]=false ;
}
}
int ans= ;
for(ll i= ;i<=b-a ;i++)
if(prime1[i])ans++ ;
if(a==)ans-- ;
printf("%d\n",ans) ;
}
return ;
}

最新文章

  1. 删除对象中的key
  2. mysql聚合函数
  3. Jquery-uploadify多文件上传插件使用介绍
  4. codevs 1913 数字梯形问题 费用流
  5. Labview学习之远程控制VI
  6. WPF4多点触摸事件
  7. windows phone 8.1开发 onedrive操作详解
  8. 关于fprint()和fwrite()
  9. [Linux] deepin与nginx
  10. Java_基础篇(杨辉三角)
  11. vue三级联动
  12. 第四节:框架前期准备篇之进程外Session的两种配置方式
  13. linux系统/var/log目录下的信息详解
  14. H5的缓存 manifest
  15. Docker学习笔记之Copy on Write机制
  16. 解决ubuntu13.04 有线网络 时常掉线的问题
  17. 【jdk源码分析】ArrayList的size()==0和isEmpty()
  18. JpGraph使用详解之中文乱码解决方法
  19. chrome和IE下的滚动条样式修改
  20. [LeetCode]Flatten Binary Tree to Linked List题解(二叉树)

热门文章

  1. Flask系列(二)Flask基础
  2. HDU1757:A Simple Math Problem(矩阵快速幂)
  3. 3.7 Templates -- Links
  4. JavaScript在页面中的引用方法
  5. 手把手教你学node.js之学习使用外部模块
  6. idea中使用Mybatis plugin
  7. Spring—Ioc
  8. ZW团队:IN_OUT传播模型简介
  9. Entity Framework Code First级联删除(转)
  10. centos配置用户级别的jdk的环境变量