[学习笔记] 线性筛与欧拉函数

news/2024/12/25 21:26:54/文章来源:https://www.cnblogs.com/WindChime/p/18628474

线性筛主要讲下思想,埃氏筛法就是用所有质数标记所有倍数,这样的时间复杂度是 \(O(n\log n\log n)\),有两只 \(\log\)。可是我不想要 \(\log\),于是欧拉筛:

改进:存下质数表。对于每一个数,只标记自己与不超过自己最小质因子的数的乘积,对于质数表 \(2,3,5\),循环到 \(i=6\) 时,只筛去 \(6\times 2=12\) 而不筛去 \(6\times 3=18\),因为 \(18=6\times 3=2\times 3\times 3=2\times 9\),会被 \(9\) 筛去。也就是说,枚举质数表中的质数超过 \(i\) 的最小质因子没有必要,\(i\) 的最小质因子以后会与更大的合数相乘。

这样每个数只被它的最小质因子筛去一次。时间复杂度为 \(O(n)\)

code:

bool isprime[100010];
int prime[1010],tot=0;
memset(isprime,1,sizeof(isprime));
isprime[1]=0;
for(int i=2;i<=100000;i++)
{if(isprime[i])prime[++tot]=i;for(int j=1;j<=tot&&prime[j]*i<=100000;j++){isprime[i*prime[j]]=0;if(i%prime[j]==0)break;}
}

\(\varphi(n)\) 表示 \(1\sim n\) 中,与 \(n\) 互质的数的个数。

怎么求 \(\varphi(n)\) 就容斥一下就好了。令 \(ans=n\),在 \(n\) 的所有因数中,把含有一个质因数的个数减去,把含有两个质因数的个数再加上......总之就是容斥。

那相当于这个式子:

然后按照展开式编码就可以求出单个 \(\varphi(n)\) 了。

int getPhi(int n)
{int ans=n;for(int i=2;i*i<=n;i++){if(n%i==0){ans=ans*(i-1)/i;while(n%i==0)n/=i;}}if(n>1)ans=ans*(n-1)/n;return ans;
}

时间复杂度:\(O(\sqrt n)\)

积性函数:当 \(\gcd(x,y)=1\) 时,\(f(x\times y)=f(x)\times f(y)\)

欧拉函数时积性函数,证明不会写,跳了。

讲一下欧拉函数的几个性质:

首先先把计算式挂着:

\[n={p_1}^{x_1}{p_2}^{x_2}{p_3}^{x_3}{p_4}^{x_4}...{p_q}^{x_q} \]

\[\varphi(n)=n(1-\frac{1}{p_1})(1-\frac{1}{p_2})(1-\frac{1}{p_3})...(1-\frac{1}{p_q}) \]

性质一

\(n\) 是质数,\(\varphi(n)=n-1\)

计算式易得。

性质二

\(n=p^k\)\(\varphi(n)=(p-1)p^{k-1}\)

计算式易得。

性质三

\(q\) 是质数,且 \(q\mid n\),则 \(\varphi (nq) = q\varphi(n)\);若 \(q\) 是质数,且 \(q\nmid n\),则 \(\varphi(nq)=(q-1)\varphi(n)\)

计算式易得。

性质四

\[n=\sum_{d\mid n}\varphi(d) \]

证明:若 \(m\)\(n\) 互质,则 \(n\)\(m\) 之间没有相同的质因子。那么

\[\varphi(n)\times\varphi(m) \]

\[=n\times\prod^{cnt_n}_{i=1}(1-\frac{1}{p_i})\times m\times\prod^{cnt_m}_{j=1}(1-\frac{1}{p_j}) \]

\[=n\times m\times\prod_{i=1}^{cnt_n+cnt_m}(1-\frac{1}{p_i}) \]

\[=\varphi(n\times m) \]

性质五

\[\varphi(a\times b)=\varphi(a)\times\varphi(b)\times\frac{\varphi(\gcd(a,b))}{\gcd(a,b)} \]

直接分解质因数可证。

还有一些常用的积性函数:

\(d(n)\) 表示 \(n\) 的约数的个数,则 \(d(n)\) 是积性函数。

\(s(n)\) 表示 \(n\) 的所有约数的和,则 \(s(n)\) 是积性函数。

证明不想写,我懒。

所有积性函数都可以用欧拉筛在 \(O(n)\) 的时间猜出。

进行一个例题的讲。

回头再补累死了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/858270.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

低空经济的地理信息支撑:构建安全、高效的飞行管理体系

随着无人机等低空飞行器的广泛应用,低空空域管理的重要性日益凸显。地理信息技术作为低空空域管理的重要支撑,对于保障低空经济的健康发展具有不可替代的作用。 地理信息技术在低空空域管理中的作用地理信息技术在低空空域管理中扮演着关键角色,主要体现在以下几个方面:空域…

【Nginx应用】Windows下使用Nginx反向代理访问MySQL数据库

环境说明1和2互通,2和3互通,1和3不通,想要在1上访问3上的msyql服务。实现步骤如下: 一、安装nginx 1.1 下载nginx 下载地址 https://nginx.org/download/nginx-1.26.2.zip 1.2 将下载的安装包上传到192.168.221.134运维跳板机,并解压1.3 nginx常用操作 1.3.1 启动nginx…

Hume 语音模型 OCTAVE:实现情感语音合成、声音克隆和多角色对话生成;通义开源多模态说话人识别项目 3D-Speaker

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。 我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编…

[学习笔记] 网络流

网络流,梳理一下然后看下 trick。 网络流主要难点在于建模,网络流很多 trick 现在已经很难有新意了。很多很好想的都是紫题,没啥含金量啊。 最大流 在残量网络中找到一条路径,设边集为 \(u\),要求满足 \(\min_{ x\in u} C_x ≠ 0\),即每条边残量皆不为 \(0\)。此时将这条…

FTP(windows版)

一、windows server搭建FTP 准备工作 手动搭建FTP站点,ECS实例必须满足以下条件:实例已分配公网IP地址或绑定弹性公网IP(EIP)。具体操作,请参见​绑定EIP​ 。 操作系统:Windows Server 2008及以上系统。系统自建即可。 步骤一:添加IIS以及FTP服务角色 在创建FTP站点前,…

BUU

BUU LSB 010看了一下没发现有什么问题 丢到stegsolve,rgb调到0的时候,是张二维码被嗅探的流量 找就完了rarqr镜子里面的世界key就是flag..无语 一开始没看到Hey I think we can write safely in this file without any one seeing it. Anyway, the secret key is: st3g0_saur…

WINDOWS-Windows11修改主题为浅色

一、文件夹显示的颜色是深颜色 个人不太喜欢,想要换成浅色系二、桌面 - 鼠标右键 - 个性化 - 颜色三、“选择模式”改成浅色系

OCM认证烂大街了吗?OCM战袍在此,永不过时!

OCM认证并没有烂大街。 OCM认证(Oracle Certified Master)是Oracle数据库认证级别中的天花板,是数据库认证体系中的顶级认证,由于OCM需要很高的知识储备和操作能力,注定它的含金量低不了。主要体现在以下几个方面: 1、行业认可度:OCM认证是Oracle认证体系中的最高级别,代…

PNG宽高CRC爆破

PNG图片宽高CRC爆破 CRC 这里的CRC指的是CRC32,也就是PNG图片的一个效验位,是一种不可逆运算,类似于MD5,作为数据效验或效验文件的完整性使用 图片宽高CRC校验码当一个png图片宽高有问题时,010回有CRC报错原理文件头89 50 4E 47 0D 0A 1A 0A 头部数据块长度为13 00 00 00 …

基于线性回归的气温与电力需求关系建模:能源供应稳定保障之策

1. 项目目标 在能源管理领域,准确预测电力需求对于保障能源供应稳定至关重要。气温是影响电力需求的重要因素之一,通过建立气温与电力需求之间的线性回归模型,我们可以预测不同气温条件下的电力需求,从而为能源供应规划提供有力支持。 2. 建模准备 数据收集来源:从气象部门…

YOLOv5 的量化流程及部署方法

01 技术背景 YOLOv5 是一种高效的目标检测算法,尤其在实时目标检测任务中表现突出。YOLOv5 通过三种不同尺度的检测头分别处理大、中、小物体;检测头共包括三个关键任务:边界框回归、类别预测、置信度预测;每个检测头都会逐像素地使用三个 Anchor,以帮助算法更准确地预测物…