HDU 5901 Count primes

HDU 5901 超大素数快判 //Meisell-Lehmer #include<cstdio> #include<cmath> using namespace std; #define LL long long const int N = 5e6 + 2; bool np[N]; int prime[N], pi[N]; int getprime() { int cnt = 0; np... 阅读详情

<span style="font-size:18px;">Count primes</span>

Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 977    Accepted Submission(s): 524


Problem Description
Easy question! Calculate how many primes between [1...n]!
 

Input
Each line contain one integer n(1 <= n <= 1e11).Process to end of file.
 

Output
For each case, output the number of primes in interval [1...n]
 

Sample Input
  
2 3 10
 

Sample Output
  
1 2 4
 

Source
 



论文题:Wiki 或者 Lehmer快速求1e11以内质数个数


<span style="font-size:18px;">#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
#define MAXN 100
#define MAXM 10001
#define MAXP 40000
#define MAX 400000
#define chkbit(ar, i) (((ar[(i) >> 6]) & (1 << (((i) >> 1) & 31))))
#define setbit(ar, i) (((ar[(i) >> 6]) |= (1 << (((i) >> 1) & 31))))
#define isprime(x) (( (x) && ((x)&1) && (!chkbit(ar, (x)))) || ((x) == 2))

using namespace std;

namespace pcf{
    long long dp[MAXN][MAXM];
    unsigned int ar[(MAX >> 6) + 5] = {0};
    int len = 0, primes[MAXP], counter[MAX];

    void Sieve(){
        setbit(ar, 0), setbit(ar, 1);
        for (int i = 3; (i * i) < MAX; i++, i++){
            if (!chkbit(ar, i)){
                int k = i << 1;
                for (int j = (i * i); j < MAX; j += k) setbit(ar, j);
            }
        }

        for (int i = 1; i < MAX; i++){
            counter[i] = counter[i - 1];
            if (isprime(i)) primes[len++] = i, counter[i]++;
        }
    }

    void init(){
        Sieve();
        for (int n = 0; n < MAXN; n++){
            for (int m = 0; m < MAXM; m++){
                if (!n) dp[n][m] = m;
                else dp[n][m] = dp[n - 1][m] - dp[n - 1][m / primes[n - 1]];
            }
        }
    }

    long long phi(long long m, int n){
        if (n == 0) return m;
        if (primes[n - 1] >= m) return 1;
        if (m < MAXM && n < MAXN) return dp[n][m];
        return phi(m, n - 1) - phi(m / primes[n - 1], n - 1);
    }

    long long Lehmer(long long m){
        if (m < MAX) return counter[m];

        long long w, res = 0;
        int i, a, s, c, x, y;
        s = sqrt(0.9 + m), y = c = cbrt(0.9 + m);
        a = counter[y], res = phi(m, a) + a - 1;
        for (i = a; primes[i] <= s; i++) res = res - Lehmer(m / primes[i]) + Lehmer(primes[i]) - 1;
        return res;
    }
}
int main(){
    pcf::init();
    long long n, res;

    while (scanf("%lld", &n) != EOF){
        printf("%lld\n",pcf::Lehmer(n));
    }
    return 0;
}
</span>


告别理论!手把手教你用Patran/Nastran搞定悬臂翼的颤振分析(附完整模型文件) 本文提供了一份详细的Patran/Nastran悬臂翼颤振分析实战指南,涵盖从几何建模到结果解读的全过程。通过手把手教学和完整模型文件,帮助工程师和学生快速掌握气动弹性分析技术,特别适合需要实际操作的初学者。文章重点介绍了模态分析、气动建模和颤振求解等关键步骤,并提供了常见问题排查和优化建议。 阅读详情

相关推荐

Homebrew高效升级与国内镜像源配置全攻略

本文详细介绍了如何通过配置国内镜像源(如清华、中科大、阿里云)来高效升级Homebrew,解决国内开发者访问GitHub仓库速度慢的问题。文章提供了从基础配置到永久生效的完整教程,包括常见问题解决和进阶技巧,帮助开发者大幅提升软件包管理效率。

weixin_28835551的博客 416

hdu5901 大素数模板

题目:求1-n的素数个数,n很大。这里介绍一个模板和一点个人理解。 首先要运用动态规划的思想,设f(i)为[1,n/i]的素数个数,设g(i)为[1,i]的素数个数,显然f(1)即为所求。对于任意1-n的合数,其最小质因子不会超过sqrt(n)(这里设为m),我们要将最小质因子为2-m的所有的合数去掉。考虑f(j),即[1,n/j]的素数和,考虑添加一个最小质因子2之后的更新,将(n/j)分为i份,重复的为f(i*j)-g(i-1)即[1,n/i/j]的部分。即 f[j]-=f[i*j]-g[i-1]

Exception 313

Typora绘制思维导图

我们观察一下,其实思维导图就是树状结构的数据嘛,作为程序员,拿语言写树状结构的数据是很平常的事情。而且写代码可比画图省事多了,查阅资料可以知道,有一种`mermaid`语法,就是做这件事情的,支持 UML,甘特图,流程图等。

Peter Cheung的博客 7932

hdu 5901(模板,10^11以内的素数个数)

Count primes                                                                     Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)

小小西北风 2266

Transformer数学推导——Q38 旋转位置编码(RoPE)的复数形式 对注意力分数的几何影响分析

RoPE 的复数形式为自然语言处理中的位置编码提供了创新且有效的解决方案。通过深入的数学理论分析,明确了其对注意力分数的几何影响及在捕捉位置信息方面的优势。在 LLM 的实际应用中,RoPE 复数形式在多个任务和场景中展现出强大的性能,特别是在处理长序列文本时,能够有效捕捉长距离依赖、缓解位置编码局限性并提升处理效率。然而,RoPE 复数形式也面临计算复杂度高、超参数调整困难和位置信息平衡等挑战。通过合理的优化策略和与其他技术的结合,有望进一步提升其性能。

墨顿随笔 1419

深入解析Gerber RS274X文件格式:从基础语法到实战应用

本文深入解析PCB制造的核心标准Gerber RS274X文件格式,详细介绍了其基础语法、坐标系统、功能码以及嵌入式光圈定义等关键特性。通过实战案例演示了如何解析和手写Gerber指令,并总结了常见错误与调试技巧,帮助PCB工程师掌握这一与制造工厂沟通的“通用语言”,确保设计准确无误地转化为实体电路板。

weixin_29252171的博客 94

求n很大时求,<= n的素数的个数(时间复杂度o(n ^ 2 / 3)模板

//Meisell-Lehmer #include #include using namespace std; #define LL long long const int N = 5e6 + 2; bool np[N]; int prime[N], pi[N]; int getprime() { int cnt = 0; np[0] = np[1] = true; pi[

AI_xue 1353

从零到一:YOLOv11高帧率模型在RDK X5上的ONNX转换与部署实战

本文详细介绍了将最新的YOLOv11高帧率模型部署到地平线RDK X5开发板的完整实战流程。内容涵盖从PyTorch模型导出ONNX、地平线工具链环境配置与模型量化编译,到编写高效的板端推理代码,并针对高帧率目标进行了后处理优化。通过实战避坑指南,帮助开发者在RDK X5上实现30FPS以上的实时目标检测。

weixin_29089057的博客 139

HDU 5901 Count primes 大素数计数

题意:计算1~N间素数的个数(N<=1e11) 题解:题目要求很简单,作为论文题,模板有两种 \(O(n^\frac{3}{4} )\),另一种lehmer\(O(n^\frac{2}{3})\) link:https://zh.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0%E8%AE%A1%E6%95%B0%E5%87%BD%E6%95%B0 /** @...

weixin_30414635的博客 142

国产上位机软件突围:适配统信UOS/麒麟OS的跨平台开发技术与实践(2026年信创实战指南)

(航天科技集团CTO):“在信创战场上,1ms的延迟意味着1个卫星的控制失效。2026年,C#/.NET MAUI不是选择,而是我们守护卫星的‘生命线’。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 404

Docker Compose 中如何控制启动顺序和关闭顺序

文章目录Docker Compose 中如何控制启动顺序和关闭顺序1、基础的启动顺序控制2、关于启动就绪和启动顺序的问题3、重试机制和重连4、使用包装器脚本5、自己定义包装器脚本 Docker Compose 中如何控制启动顺序和关闭顺序 1、基础的启动顺序控制 你可以使用 depends_on 选项来控制服务器的启动和关闭顺序 depends_on,links,volumes_from,和ne...

简简单单Onlinezuozuo 3117

hdu5901 Count primes

min_25筛

ACoder 275

YOLO11改进|注意力机制篇|引入ELA注意力机制

YOLO11添加ELA注意力机制

A1983Z的博客 3647

HDU5901 Count primes【素数】

Count primes Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 3365 Accepted Submission(s): 1706 Problem Description Easy question! Calculate how many primes between [1…n]! Input Each line contain

海岛Blog 540

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

hdu5901Count primes

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5901题意:求n以内素数个数。分析:模板题,没搞懂原理,先弄一个O(n23)O(n^{ \frac{2}{3}})的模板吧。代码:const int N=5e6+10; const int M=7; const int PM=2*3*5*7*11*13*17; bool np[N]; int pi[N],pr

Fsss 687

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

HDU 5901 Count primes

Count primes Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1046    Accepted Submission(s): 578 Problem Description Easy question! Ca

大咸鱼。。。 499

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

沈阳网赛1010 HDU 5901 Count primes

求前n个数中质数的个数。这里要用到Meisell-Lehmer的n^(2/3)的方法,借用了一大牛的板子。 //Meisell-Lehmer #include #include using namespace std; #define LL long long const int N = 5e6 + 2; bool np[N]; int prime[N], pi[N]; int getp

PrimeXuan 2005

HDU 5901 Count primes

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5901 Problem Description Easy question! Calculate how many primes between [1...n]! Input Each line contain one integer n(1 <= n &lt...

weixin_30886233的博客 74

hdu 5901 Count primes

题意: 计数区间$[1, n](1 \leq n \leq 10^{11})$素数个数。 分析: 这里只介绍一种动态规划的做法。 首先要说一下【分层思想】在动态规划中非常重要,下面的做法也正是基于这一思想。 我们用$dp[i]$表示区间$[1, \frac{n}{i}]$中素数的个数,用$c[i]$表示区间$[1, i]$中素数个数。 那么我们要求的即是$dp[1]$。由于$n$最大是...

weixin_34185320的博客 174

HDU-5901-Count primes(大素数模板)

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5901 题意: 求区间[1,N]的质数的个数(1≤N≤1011) CODE: 1,O(n^(3/4)) #include #define ll long long using namespace std; ll f[340000],g[340000],n; void init() {

不会吃鱼的喵 394

HDU 5901 Count primes【数论】

Count primes Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 903    Accepted Submission(s): 481 Problem Description Easy question!

Puya的博客 807

【HDU 5901】Count primes(EES)

Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2745 Accepted Submission(s): 1398 Problem Description Easy question! Calculate how many pri...

Coldfresh的博客 438

HDU 5901 - Count Primes

Problem Description Easy question! Calculate how many primes between [1...n]! Input Each line contain one integer n(1 Output For each case, output the number of primes in interval [1...n]

Shiina Mashiro no youni 521

【HDU】5901】【模板题】Count primes 【Meisell-Lehmer求质数个数】

传送门:HDU5901 描述: Count primes Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 704    Accepted Submission(s): 350 Problem Descrip

魔笛手的博客 673

HDU 5901 Count primes 论文题

Count primes 题目连接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5901 Description Easy question! Calculate how many primes between [1...n]! Input Each line contain one integer n(1 <= n <= 1e11...

weixin_30546933的博客 76
上一篇: HDU 5876 Sparse Graph(补图+BFS最短路)
下一篇: 树状数组模板
hellohelloC
博客等级 码龄12年 15粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值