[线筛五连]线筛莫比乌斯函数

线性筛法 文章目录线性筛法1. 算法分析1.1 线性筛求素数1.2 线性筛求欧拉函数1.3 线性筛求莫比乌斯函数1.4 线性筛求约数个数1.5 线性筛求约束和2. 模板2.1 线性筛求素数2.2 线性筛求欧拉函数2.3 线性筛求莫比乌斯函数2.4 线性筛求约数个数2.5 线性筛求约数和 线性筛法 1. 算法分析 关键思想:每个数字都被它的最小质因数筛掉 1.1 线性筛求素数 i % pj = 0i\ \%\ p_j \ =\ 0i % pj​&nbsp 阅读详情

例题太多

线筛莫比乌斯函数

莫比乌斯函数的定义

以下内容摘自百度

莫比乌斯函数完整定义的通俗表达:
1.莫比乌斯函数μ(n)μ(n)的定义域是N+N+
2.μ(1)=1μ(1)=1
3.当n存在平方因子时,μ(n)=0μ(n)=0
4.当n是素数或奇数个不同素数之积时,μ(n)=−1μ(n)=−1
5.当n是偶数个不同素数之积时,μ(n)=1μ(n)=1

表达式如下:

μ(x)=⎧⎩⎨⎪⎪1(−1)n0x=1x=p1p2...pn其他情况μ(x)={1x=1(−1)nx=p1p2...pn0其他情况
莫比乌斯函数的性质

有很多神奇的性质,这里只需要用到它的积性,其他的我会在莫比乌斯反演的总结里提到。

这玩意儿的积性很容易证,分类讨论一下就好了,博主懒得写了。。。

莫比乌斯函数的线筛

很容易讨论。。。

设T=i×p[j]T=i×p[j]。

1.当TT为质数时,根据定义μ(T)=−1;

2.当TT拥有多个最小质因数(即i mod p[j]=0)时,根据定义μ(T)=0μ(T)=0;

3.当TT的最小质因数只有一个(即i mod p[j]≠0)时,显然此时gcd(i,p[j])=1gcd(i,p[j])=1,根据μ(x)μ(x)的积性,μ(T)=μ(i)×μ(p[j])=−μ(i)μ(T)=μ(i)×μ(p[j])=−μ(i);

线筛方程也贼简单:

μ(T)=⎧⎩⎨⎪⎪−10−μ(i)T∈Primei mod p[j]=0i mod p[j]≠0μ(T)={−1T∈Prime0i mod p[j]=0−μ(i)i mod p[j]≠0
代码
void getmiu()
{
    miu[1]=check[1]=1;
    R i,j,t;
    for(i=2;i<=N;++i)
    {
        if(!check[i])miu[i]=-1,p[++p[0]]=i;
        for(j=1;j<=p[0];++j)
        {
            t=p[j]*i;
            if(t>N)break;
            check[t]=1;
            if(i%p[j]==0){miu[t]=0;break;}
            miu[t]=-miu[i];
        }
        miu[i]+=miu[i-1];
    }
}
线性筛——莫比乌斯函数 如果不会线性筛素数的话,建议先看这篇博客了解一下线性筛素数。 莫比乌斯函数函数(积性函数都可以线性筛)主要是在线性筛素数的基础上得到的 我们知道: 若 n=∏i=1npitin=\prod_{i=1}^n p_i^{t_i}n=∏i=1n​piti​​ 则 μ(n)={(−1)kk=∑i=1ntiandmax⁡(t1,t2,⋯&amp;amp;amp;ThinSpace;,tn)≤10othersμ(n)=\be... 阅读详情

相关推荐

08线性筛算法

文章目录线性筛算法一、线性筛 线性筛算法 一、线性筛 标记一个范围内的数字是否是合数,没有被标记的就是素数 算法的空间复杂度为 O(N), 时间复杂度为 O(N) 总体思想是用一个整数 M 去标记合数 N,其中 N 和 M具有如下性质: N 中最小的素数为 p N 可以表示成为 p * M p 一定小于等于 M 中最小的素因子 利用 M * P’ (所有不大于 M 中最小素因子的集合)标记 N1, N2, N3… 线性筛实例代码: #include <stdio.h> #define

小白的Soda的博客 408

线性筛(欧拉筛)——算法解析

基本介绍:欧拉筛是一个能够做到O(n)的时间复杂度的质数筛法。是目前最优秀的质数筛法,一个十分基础的工具,从原理上掌握它是非常有必要的。 原理分析: 核心代码就在这里: for(ll i=2;i<=Max;i++) { for(ll j=1;j<=count1 && i*prime[j]<=Max;j++) { vis[i*prime[j]]=true; if(i%prime[j]==0) break; } } prime中素数是递增的,当i%

风中的微尘的博客 5096

STM32开发实战--解决STM32CubeMX生成代码时钟初始化卡死问题

本文详细分析了STM32CubeMX生成代码在时钟初始化阶段卡死的问题,提供了多种解决方案,包括简单修改和稳健的等待机制。通过深入探讨HAL库的时钟初始化陷阱及硬件层面的根本原因,帮助开发者快速定位并解决STM32开发中的常见问题。

weixin_26965807的博客 440

线性筛prime/phi/miu/求逆元模板

这绿题贼水...... 原理我不讲了,随便拿张草稿纸推一下就明白了。 1 #include <cstdio> 2 using namespace std; 3 const long long int N=100000020; 4 int su[N],ans,top; 5 bool vis[N]; 6 void shai(int b) 7 { 8...

weixin_34259159的博客 218

使用电荷放大器处理压电加速度计输出

电阻器 R p模拟传感器的绝缘电阻,为产生的电荷创建泄漏路径。在此图中,顶部波形显示传感器产生的电荷,而底部波形显示电荷放大器的输出。这需要具有大输入阻抗的放大级,以防止产生的电荷通过与传感元件并联的放大器的输入阻抗泄漏。换句话说,电荷放大器补偿传感器产生的电荷 q p ,反馈电容器 C F中具有相反极性的等量电荷。因此,任何与传感器并联的绝缘电阻,如电缆的绝缘电阻或传感器的漏电电阻Rp,都不能流过电流。漂移是指电荷放大器输出在一段时间内发生的变化,而不是由被测物理参数的变化(我们讨论的加速度)引起的。

weixin_45260069的博客 3905

【Milvus】实战指南:利用milvus-backup实现高效数据备份与恢复

本文详细介绍了如何利用官方工具milvus-backup为Milvus向量数据库实施高效的数据备份与恢复。文章从备份的必要性出发,逐步讲解了环境准备、配置要点、全量与按需备份操作,以及恢复数据的关键步骤和验证方法,旨在帮助用户构建可靠的数据安全防线,应对误操作或系统故障风险。

weixin_29217235的博客 131

线性筛与欧拉函数、莫比乌斯函数

网上关于素数筛的资料很多,这里只是给出弱鸟整理的几个线性筛和应用。最朴素的素数筛——埃拉托斯特尼筛法(Sieve of Eratosthenes) 复杂度 Olognlognint primes[MAXN],tot=0; bool isPrime[MAXN];void getPrime() { memset(isPrime,true,sizeof(isPrime)); for(in

Joovo的博客 3630

知识图谱大模型系列之 12 LLM 知识图谱构建器:从零到 GraphRAG 使用 LLM 知识图谱生成器在 GenAI 应用中提取和使用知识图谱(教程含源码)

为了更深入地了解 LLM 知识图谱构建器,GitHub 存储库提供了大量信息,包括源代码和文档。此外,我们的文档提供了详细的入门指南,而GenAI 生态系统则提供了有关可用更广泛工具和应用程序的进一步见解。

iCloudEnd的博客 2037

【线性筛】

在这里提供三种线性筛的讲解,它们分别是:素数筛,欧拉筛和莫比乌斯筛。 ·筛法正确性的重要理论依据: 上述函数均为积性函数。积性函数的性质为:若f(x)是一个积性函数,那么对于任意素数a,b,满足f(ab)=f(a)*f(b) ·一些可爱的要点(有助于理解筛法原理): ①欧拉筛和莫比乌斯筛是以素数筛为基础的。 ②三者在代码实现上几乎是同一框架。 ③欧拉函数和莫...

weixin_34410662的博客 776

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析

【QNX+Android虚拟化方案】12 - 设备虚拟化 之 Passthrough透传、Vdev Trap、HAB Socket 原理解析

|~~~热爱生活、努力学习的小伙汁~~~| 1371

数据资产可视化分析:PowerBI在大数据管理中的实战

目的:帮你搞懂“为什么数据资产需要可视化?”“PowerBI能帮企业解决什么问题?”,并掌握用PowerBI做大数据可视化的实战技巧。范围:覆盖数据资产定义、可视化分析原理、PowerBI核心功能(数据连接、建模、可视化)、零售企业实战案例,以及未来趋势与挑战。背景:为什么企业的数据像乱堆的玩具?核心概念:数据资产、可视化分析、PowerBI分别是什么?它们怎么配合?实战步骤:用PowerBI帮零售企业整理“销售玩具箱”,做出能指导决策的仪表盘;应用场景:不同部门怎么用这个“整理好的玩具箱”?

2501_92132293的博客 906

[线筛五连]线筛约数个数

伪模板链接:https://www.luogu.org/problemnew/show/P3327 线筛约数个数 约数个数的定义 为了格式,写了个这玩意儿。。。 这定义应该很清楚了,写个式子吧。。。 σ0(x)=∑d|x1σ0(x)=∑d|x1\sigma_0(x)=\sum_{d|x}1 约数个数的性质 设x=pa11pa22...pannx=p1a1p2a2...pnanx=...

ShadyPi的IT笔记 387

华为OD机试 新系统 双机位C卷 往年真题 机考题库(持续收录中)以及算法考点详解

每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 7万+

[数论]莫比乌斯反演入门

莫比乌斯反演常用技巧与性质的梳理及部分证明 寒假的时候雍老师就跟我们讲了,可惜当时是真的傻逼,雍老师讲的辣么详细都听不懂。。。考试全靠背公式,打暴力。这次才算是把寒假的坑填了大半,虽然我现在还是很菜。。。 前置知识 线筛五连: (1)线筛素数 (2)线筛欧拉函数 (3)线筛莫比乌斯函数 (4)线筛约数个数 (5)线筛约数和 对上述函数的定义与暴力求解(在上面的链接里均有提到)...

ShadyPi的IT笔记 1764

SAP_SD模块更改销售订单定价简介

方式优点缺点适用场景MASS简单,无需开发不能触发重新定价逻辑修改特定字段BDC (VA02)可模拟人工操作维护复杂,速度慢少量订单批改稳定、安全需ABAP支持推荐用于批量重新定价VBOF标准重算返利仅适返利类条件返利更新通过本文,我们了解了 SAP 的[SAP_SD模块更改销售订单定价]的基本概念和应用方法。希望这些信息能帮助您在实际工作中更好地使用 SAP 系统,提高工作效率和管理水平。更多SAP文章请点击更多SAP文章更新,大家一起学习进步!!!

我小时候很黑的博客 712

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

[线筛五连]线筛欧拉函数

伪模板链接:https://www.luogu.org/problemnew/show/P1390 线筛欧拉函数 欧拉函数定义 在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)...

ShadyPi的IT笔记 344

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

线性筛用法总结

1 素数 最初当然是最基本的用来筛素数啦,break保证每个数只被最小的因子筛掉。其他的筛法根据定义来就好了。 void init() { for(int i=2;i&lt;=maxn;i++) { if(!vis[i]) pri[++pri[0]]=i; for(int j=1;j&lt;=pri[0]&amp;&amp;i...

Rayment的博客 1474

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

线性筛μ的模板

时效O(n)O(n) 因为质数的μ都是-1,然后一个数t里面如果有多个质数=zhi[j]*i,i是有很多个与zhi[j]互异的质数相乘的,那么μ[t]=-μ[i]。miu[1]=1;qian[1]=1; fo(i,2,n){ if(!bz[i]){ zhi[++zhi[0]]=i; miu[i]=-1; }

Facico的博客 812

算法学习:线筛

那些年普通的筛法: for(i=2;i<=sqrt(n);i++) if(bz[i]) for(j=2;j*i<n;j++) bz[i*j]=0; O(n log n) 其实可以优化: for(i=2;i<=sqrt(n);i++) if(bz[i]) for(j=i;j*i<n;j++) bz[i*j]=0; (因为像3*2 和 2 *3这样的重复了)...

Com_man_der的博客 668

莫比乌斯函数线性筛

#include"iostream" #include"vector" #include"string.h" using namespace std; const int maxn=1e5; bool PP[maxn+10]; vector&lt;int&gt; prime; int mu[maxn+10]; //int Moblus(int n) //{ // if(n==1)return 1...

帅气廖鹏飞 534

线性筛素数 算法笔记整理+模版

我们以洛谷上的这道题为例题来讲:传送门题目描述如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内)输入输出格式输入格式:第一行包含两个正整数N、M,分别表示查询的范围和查询的个数。接下来M行每行包含一个不小于1且不大于N的整数,即询问该数是否为质数。输出格式:输出包含M行,每行为Yes或No,即依次为每一个询问的结果。输入输出样例输入样例#1: 100 5 2 3...

LvYanchang的博客 433

ACM基础知识储备-快速筛法求素数

求素数是程序设计比赛中经常遇到的问题,最基本的方法是通过素数的定义直接判断,只能被1和它本身整除的数就是素数了。这种方法适合判断单个数是否为素数,当要求一个范围内素数而这个范围又比较大时,这种方法就不太使用了,甚至程序要运行几分钟才能算出结果。 筛法的思想是去除要求范围内所有的合数,剩下的就是素数了,而任何合数都可以表示为素数的乘积,因此如果已知一个数为素数,则它的倍数都为合数。 普通的线性筛

Charles的博客 1万+

线性筛之一般算法

这是一般线性筛的算法是不是比较详细?希望指正哈#include<stdio.h> #include<stdbool.h> #define maxn 1000010 int a[maxn]; int cnt; bool vis[maxn]; void Init() { memset(vis,0,sizeof(vis));///初始化数组vis int i,j; cnt=0;

小博客 558

莫比乌斯反演套路1_线性筛法

线性筛法是O(n),不然它就不叫线性。

Cold_Chair的博客 1075

线性筛莫比乌斯函数

莫比乌斯全家桶ll prime[maxn],mob[maxn],vis[maxn],cnt;void Mobius(){ memset(prime,0,sizeof(prime)); memset(mob,0,sizeof(mob)); memset(vis,0,sizeof(vis)); mob[1] = 1; cnt = 0; for(ll i =

Nemaleswang的博客 689

欧拉线性筛&欧拉函数&莫比乌斯函数

欧拉线性筛+欧拉函数+莫比乌斯函数+vijos1889+BZOJ2705

NeighThorn的博客 1502
上一篇: [线筛五连]线筛欧拉函数
下一篇: [线筛五连]线筛约数个数
ShadyPi
博客等级 码龄9年 1万+粉丝 637原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShadyPi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值