news 2026/5/29 0:10:17

P1835 素数密度[二次筛法][数论]

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
P1835 素数密度[二次筛法][数论]

P1835 素数密度

时间限制: 1.00s 内存限制: 128.00MB

复制 Markdown

中文

退出 IDE 模式

题目背景

UPD:

  • 2024.8.12:加入一组 Hack 数据。

题目描述

给定 L,R,请计算区间 [L,R] 中素数的个数。

1≤L≤R<231,R−L≤106。

输入格式

第一行,两个正整数 L 和 R。

输出格式

一行,一个整数,表示区间中素数的个数。

输入输出样例

输入 #1复制运行

2 11

输出 #1复制运行

5

数据范围很大直接筛的话不现实

注意到每个合数都可以分解为若干个质数的乘积 并且一定有一个质数 小于等于sqrt(n) 那么我们可以筛出1到sqrt(n)的所有质数 然后表示这些质数在区间l到r的倍数为合数 剩下没有被标记的数字就是质数

代码实现如下:

#include <bits/stdc++.h> using namespace std; #define int long long vector<int>minp,primes; void sieve(int n){ minp.assign(n+1,0); primes.clear(); for(int i=2;i<=n;i++){ if(!minp[i]){ minp[i]=i; primes.push_back(i); } for(auto p:primes){ if(i*p>n)break; minp[i*p]=p; if(p==minp[i])break; } } } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int l,r; cin>>l>>r; int cnt=0; sieve(50000); vector<bool>vis(r-l+1,0); for(auto p:primes){ for(int j=max(p*2,(l+p-1)/p*p);j<=r;j+=p){ vis[j-l]=1; } } for(int i=0;i<=r-l;i++){ if(l+i==1)continue; if(!vis[i])cnt++; } cout<<cnt<<'\n'; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/5 7:29:55

牛客周赛Round137总结

这次比赛比上一次有进步&#xff0c;做对三道半、前三题就不用说了看题吧A,B,C:#include<bits/stdc.h> using namespace std; int main() {int n;cin>>n;int an/3600;int bn%3600/60;int cn%60;cout<<a<< <<b<< <<c<<endl;ret…

作者头像 李华
网站建设 2026/4/3 1:50:04

OpenClaw 自动化框架实战:从入门到精通

OpenClaw 自动化框架实战&#xff1a;从入门到精通摘要&#xff1a;本文详细介绍 OpenClaw 自动化框架的核心概念、架构设计、技能开发和实际应用场景&#xff0c;帮助读者快速掌握 AI Agent 自动化开发能力为什么值得看&#x1f916; AI Agent 开发新范式 - 无需复杂框架&…

作者头像 李华
网站建设 2026/3/31 23:44:43

第一天(实习无忧)

##学习了结构体&#xff0c;联合体&#xff0c;枚举##1.结构体&#xff1a;内存对齐机制以及自定义默认对齐数还有结构体实现位段&#xff0c;位段是以bite为单位&#xff0c;但是需注意跨平台可能会出现问题&#xff0c;且不能用取地址符输入&#xff0c;因为存储的地址不确定…

作者头像 李华
网站建设 2026/4/4 7:22:09

新手福音:用快马AI打造交互式cmd命令学习手册,边学边练

作为一个刚接触编程的新手&#xff0c;记忆各种cmd命令确实是个头疼的问题。那些看似简单的命令行&#xff0c;在实际操作时总是记不住参数和用法。最近我发现了一个特别实用的方法——用InsCode(快马)平台来创建交互式的cmd命令学习手册&#xff0c;效果出奇的好。 为什么需要…

作者头像 李华