数论 欧拉函数
欧拉函数
剩余系
-
同余类:对于 ,集合 的所有数模 同余,余数都是 ,该集合称为一个模 的同余类,简记为
- 模 的同余类一共有 个,分别为 ,他们构成 的完全剩余类
- 同余类也叫剩余类
-
完全剩余系:对于 ,有 共 个整数,且两两模 不同余,这些同余类所组成的集合叫做模 的完全剩余系
-
从模 的每个剩余类中任取一个数,所得到的 个数是一个模 的完全剩余系
-
若 是模 的完全剩余系, ,有:
-
模 的完全剩余系有且仅有 个整数, 是模 最小的非负完全剩余系
-
当 时: 是模 的绝对值最小的完全剩余系
-
当 时: 是模 的绝对值最小的完全剩余系
-
-
简化剩余系:对于模 的完全剩余系,从中选出与 互质的同余类元素,组成 的简化剩余系
- 模 的简化剩余系为
- 模 的简化剩余系的元素数量记为
-
性质
- 若 ,有 属于 的简化剩余系
- 若集合 是模 的简化剩余系, ,则集合 也是模 的简化剩余系
- 若 。集合 分别是模 的简化剩余系,则 是模 的简化剩余系
- 在数列 中,与 互质的整数之和是
- 若 ,有
欧拉函数
-
定义: 表示 中与 互质的数的个数
-
通式:
- 上式中:
- 规定:
- 若 为质数,则 与 中每一个数互质,有
-
证明
-
关于上述证明用到的欧拉函数数积性的证明
证明:若 ,有
将 构造为下面的矩阵
则 是上面的矩阵中与 互质的数的个数
上面的矩阵中与 互质的数就是同时与 互质的数
,所以当 时第 列的数都与 互质,故与 互质的元素共有 列
假定 ,有 均与 互质
是模 的完全剩余系且
也是模 的完全剩余系
每一列都恰好有 个数与 互质
由乘法原理,同时与 互质的数有 个,即:
-
-
性质及证明
-
证明见上
-
-
-
用法
template<class t>t phi(t n){ t res=n; //n在区间[√n,n]之间的质因子最多有一个为n for(t i=2;i*i<=n;i++){ //公式 phi(n)=n*1/i*(i-1) if(n%i==0)res=res/i*(i-1); while(n%i==0)n/=i;//除掉所有的因子i } //如果n!=1说明存在大于√n的质因子为n if(n>1)res=res/n*(n-1); return res; }
-
筛法求欧拉函数:给定一个正整数 求 中每个数的欧拉函数
-
需要的基本性质
-
用法
typedef long long lld; lld phi[maxn],pri[maxn],cnt; bool mark[maxn]; void getphi(int n){ phi[1]=1; for(int i=2;i<=n;i++){ if(!mark[i]){//i是质数 pri[++cnt]=i; phi[i]=i-1; } for(int j=1;j<=cnt&&i*prime[j]<=n;++j){ mark[i*pri[j]]=1; if(i%pri[j]==0){ phi[i*pri[j]]=pri[j]*phi[i]; break; } phi[i*pri[j]]=(pri[j]-1)*phi[i]; } } }
-
欧拉定理
- 对于任意 ,有
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧