当前位置:网站首页>浅层了解欧拉函数
浅层了解欧拉函数
2022-07-31 05:21:00 【im34v】
基础知识
根据算数基本定理:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积,即 N = p 1 α 1 p 2 α 2 . . . p n α n N={p_1}^{α_1}{p_2}^{α_2}...{p_n}^{α_n} N=p1α1p2α2...pnαn, 其中 p 1 、 p 2 、 . . . 、 p n {p_1}、{p_2}、...、{p_n} p1、p2、...、pn 称为N的质因数
e g : 12 = 2 ∗ 2 ∗ 3 = 2 2 ∗ 3 eg:12=2*2*3={2}^{2}*3 eg:12=2∗2∗3=22∗3
欧拉函数
通式: φ ( n ) = n ( 1 − 1 p 1 ) ( 1 − 1 p 2 ) . . . ( 1 − 1 p n ) φ(n)=n(1-\frac{1}{p_1})(1-\frac{1}{p_2})...(1-\frac{1}{p_n}) φ(n)=n(1−p11)(1−p21)...(1−pn1),这里的 p 1 、 p 2 、 . . . 、 p n {p_1}、{p_2}、...、{p_n} p1、p2、...、pn 也就是上面基础知识所介绍的质因数。
欧拉函数解决的是小于n的正整数中与n互质的数的数目问题,因此 φ ( 1 ) = 1 φ(1)=1 φ(1)=1。
e g : eg: eg:由 12 = 2 ∗ 2 ∗ 3 = 2 2 ∗ 3 12=2*2*3={2}^{2}*3 12=2∗2∗3=22∗3,得 φ ( 12 ) = 12 ∗ ( 1 − 1 2 ) ∗ ( 1 − 1 3 ) = 4 φ(12)=12*(1-\frac{1}{2})*(1-\frac{1}{3})=4 φ(12)=12∗(1−21)∗(1−31)=4 。
我们列举小于12的正整数,1、2、3、4、5、6、7、8、9、10、11,发现与12互质的数字是 1、5、7、11,正好是4个,这也侧面说明了欧拉函数的正确性。
实现代码
//求一个数的欧拉函数值
int Euler(int n){
int phi=n;
//为什么i只需要到sqrt(n)呢?因为两个大于sqrt(n)的数相乘就会大于n。
for(int i=2;i*i<=n;++i){
if(n%i==0)phi=phi/i*(i-1); //找到质因数i
while(n%i==0)n/=i; //消去i
}
if(n>1)phi=phi/n*(n-1); //特判
return phi;
}
//区间预处理欧拉函数
void euler(int n){
for(int i=1;i<=n;++i)Phi[i]=i; //假设i是质数
for(int i=2;i<=n;++i){
if(Phi[i]==i){
//Phi[i]==i说明i是质数
for(int j=i;j<=n;j+=i){
Phi[j]=Phi[j]/i*(i-1);
}
}
}
}
欧拉函数的性质
通过代码的运行结果,我们可以发现欧拉函数的一些性质:(不严谨但是直观)
1、n为质数时, φ ( n ) = n − 1 φ(n)=n-1 φ(n)=n−1
2、n为奇质数时, φ ( 2 n ) = φ ( n ) φ(2n)=φ(n) φ(2n)=φ(n)
积性函数
积性函数指对于所有互质的整数a和b有性质 f ( a b ) = f ( a ) f ( b ) f(ab)=f(a)f(b) f(ab)=f(a)f(b) 的数论函数,其中欧拉函数就属于积性函数,即 g c d ( m , n ) = = 1 时 , φ ( m n ) = φ ( m ) φ ( n ) gcd(m,n)==1时,φ(mn)=φ(m)φ(n) gcd(m,n)==1时,φ(mn)=φ(m)φ(n)。
边栏推荐
猜你喜欢
随机推荐
等待,信息打印,浏览器操作,键盘事件
Debian 搭建 WireGuard 服务端
FRP穿透教程
全网首发!ADK To Win11PE(1)中文+包
一种用QT实现即时通信软件表情发送与接收的思路
DOM-DOM的介绍以及通过方法获取元素
对称加密和非对称加密
12.0 堆参数调优入门之GC收集日志信息
Openssl一键自签证书
Debian 10 配置网卡,DNS,IP地址
什么样的人不适合入行编程?你真的适合学习编程吗?
PXE高效批量网络装机
定义一个类,super的使用,私有属性
fdisk分区,gdisk添加磁盘,parted进行磁盘分区,parted新增分区,临时挂载和永久挂载
文件内容浏览cut、uniq、sort、tr命令的使用,
Oracle入门 10 - Linux 设备类型与文件目录结构
Oracle入门 05 - VirtualBox的虚拟机安装配置
npm install出现node错误
银河麒麟v10 sp1 安装 PostgreSQL 11.16
FTP服务与配置