LightOJ - 1197 Help Hanzo(埃氏素筛在线求区间素数个数)

博客详细介绍了如何解决LightOJ上的1197题,即在给定区间[a, b](1≤a≤b<231,b-a≤100000)内计算素数个数。由于预处理所有素数会导致超时,采用埃拉托斯特尼筛法动态筛选区间内的素数。时间复杂度为O(231+T*(b-a)loglog(b-a))。文章提供了筛选区间素数的代码实现。" 126416394,5804617,Verilog代码解析:4选1MUX电路设计与实现,"['数字IC', 'Verilog', '校招']
摘要由CSDN通过智能技术生成

链接LightOJ - 1197 Help Hanzo

题意:

T ( ≤ 200 ) T(\le 200) T(200)组数据,每组数据给出 a , b &ThickSpace; ( 1 ≤ a ≤ b &lt; 2 31 , b − a ≤ 100000 ) a,b\;(1\le a\le b\lt2^{31},b-a\le 100000) a,b(1ab<231,ba100000),问区间 [ a , &ThinSpace; b ] [a,\,b] [a,b]内有多少素数?



分析:

预处理所有素数会TLE+MLE,所以要利用条件“ b − a ≤ 100000 b-a\le 100000 ba100000 ”,于是我们可以每次对区间进行埃氏素数筛选,得到这个区间内的素数表(即得到了素数个数)。

就像判断 n n n是否为素数需要 1 1 1 ~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值