隐藏页面特效

P1835 素数密度_NOI导刊2011提高(04)

题目描述

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

输入输出格式

输入格式:

 

两个数L和R。

 

输出格式:

 

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

 

输入输出样例

输入样例#1:
2 11
输出样例#1:
5

AC代码:

#include<cstdio> #include<cmath> using namespace std; const int N=1e6+100; int ans,l,r,k1,k2,L;//k1,k2是为了以一次除法代替大量乘法运算 bool f,check[N]; int main(){ scanf("%d%d",&l,&r); L=r-l+1; if(l<2) l=2; k1=sqrt(r+0.5); for(int j,i=2;i<=k1;i++){ if(i>=l&&check[i-l]) continue; k2=r/i; f=1; for(j=l/i;j<=k2;j++) if(j>1){ if(f&&i*j<l){f=0;continue;}//f是为了防止i*j-l<0致使数组溢出,只判一次节省时间 check[i*j-l]=1; } } for(int i=0;i<L;i++) if(!check[i]) ans++; printf("%d",ans); return 0; }

 


__EOF__

本文作者shenben
本文链接https://www.cnblogs.com/shenben/p/6054288.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   神犇(shenben)  阅读(293)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示