【NOIP2011模拟9.20】素数密度

该博客介绍了如何解决NOIP2011模拟赛中的素数密度问题,给出了解题思路和时间复杂度分析。通过枚举根号R内的质数,并筛选掉L到R范围内能被这些质数整除的数,可以找到区间内的所有质数,方法具有O(nlogn)的时间复杂度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【NOIP2011模拟9.20】素数密度

Time Limits: 1000 ms Memory Limits: 262144 KB

Description
给定区间[L,R] (L<=R<=2147483647,R-L<=1000000),请计算区间中素数的个数。

Input
两个数L和R

Output
一行,区间中素数的个数。

Sample Input
2 11

Sample Output
5

Hint

  • 40%的数据,R≤1e6;
  • 60%的数据,R≤1e7;
  • 100%的数据,R≤2147483647,且R-L<=1e6。


解题思路


一看这一道题,发现L和R好大啊,我立刻感觉这道题没有希望了,可转念一想,我不能慌,看到到R-L<=1e+6,立刻想到了O(nlogn)这一类的时间复杂度,发现判定质数是由根号内的质数判断的,也就是说,筛出L到R的质数可以以排除L到R的合数来搞,我们枚举根号R内的质数P,再筛区L到R能被P整除的数,筛完后就只剩下质数了,时间复杂度(P为质数集合-):

O(i=1,iP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值