欧拉定理(从理论到应用)
欧拉定理
- 1.引入基本概念
- 1.1互质
- 1.2质因数
- 1.3余数的基本性质
- 1.4同余
- 2.欧拉函数
- 2.1定义
- 2.2欧拉函数通式
- 2.3代码
- 3.欧拉定理
- 3.1定义
- 3.2证明
- 3.3费马小定理
- 4.应用及拓展
- 4.1求逆元
- 4.2欧拉降幂
1.引入基本概念
1.1互质
公约数只有1 的两个 整数,称为互质。a与b互质,则写作 (a,b)=1 。
1.2质因数
质因数指能整除给定整数的质数,例如6的质因数为2和3。
1.3余数的基本性质
(a+b)%c = ((a%c)+(b%c)) % c
(a-b)%c = ((a%c) - (b%c)) % c
(a*b)%c = ((a%c) * (b%c)) % c
1.4同余
给定一个正整数m,如果两个整数a和b满足a-b能够被m整除,那么就称整数a与b对模m同余,记作a≡b(mod m)。
2.欧拉函数
2.1定义
对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目.
2.2欧拉函数通式
欧拉函数通式:φ(n)=n*(1-1/p1)*(1-1/p2)*(1-1/p3)*(1-1/p4)*……*(1-1/pn)
p为n的质因数,n是不为0的正整数,φ(1)=1,质数的φ为自己减1 例如φ(2)=1
2.3代码
typedef long long ll;
ll Eular(ll n)
{ll ans=n;for(int i=2; i*i <= n; ++i){if(n%i == 0){ans = ans/i*(i-1);while(n%i == 0)n/=i;}}if(n > 1) ans = ans/n*(n-1);return ans;
}
还可以在素数筛的同时求欧拉函数,效率更高。
3.欧拉定理
3.1定义
对任意两个正整数 a, n,如果两者互质,那么 aφ(n)≡1(mod n)。
3.2证明
先设集合P为小于n且与n互质的正整数集合{q1 , q2 , q3 , … , qφ(n)},这个集合有两个性质:
- qi与n互质
- qi模n后各不相同
再设集合Q为{a*q1%n , a*q2%n , a*q3%n , … , a*qφ(n)%n}
可证:
- 因为a与n互质,所以a*q%n也与n互质,即Q中各元素均与n互质
- 通过反证法,若a*qi%n=a*qj%n,那么
a*qi-a*qj=0 --> a*(qi-qj)=0 --> qi-qj=0 --> qi=qj
因为先前集合P中qi各不相同,所以不成立,可得集合Q中元素各不相同
由上可得P,Q均为包含φ(n)个小于n且n互质且各不相同的元素集合,而这样的集合只有一个,可得P=Q;
所以集合P元素的乘积和集合Q元素的乘积相等:
q1 * q2 * q3 * … * qφ(n)=(a*q1%n) * (a*q2%n) * (a*q3%n) * … * (a*qφ(n)%n)
q1 * q2 * q3 * … * qφ(n)=aφ(n) * (q1 * q2 * q3 * … * qφ(n))%n
同时除q1-qφ(n)即可得
aφ(n)≡1(mod n)
3.3费马小定理
若存在整数a,p,a为整数,p为质数,那么a(p-1)≡ 1(mod p)。
费马小定理是欧拉定理的一种特殊情况(当n为质数时φ(n)为n-1)
4.应用及拓展
4.1求逆元
定义:
对于a*b≡1(mod p),b是a在模m下a的逆元。(只有a与p互质时存在逆元)
意义
余数的基本性质中只包括加减乘,当面对除法时,逆元就相当于是个倒数,可以将除法变为乘法,方便进行模运算。
应用
当p为质数时由费马小定理a(p-1)≡ 1(mod p)得,逆元b为a(p-2);
当p过大时需要使用快速幂进行计算;
当p不是质数时则需使用欧拉定理,提前求出p的欧拉函数,逆元b为a(φ(n)-1)。
时间复杂度为O(nlongn)
4.2欧拉降幂
在求解abmod p时,如果b过大,使用暴力和快速幂是无法求解的,所以这时候就需要用到欧拉降幂来求解。
欧拉降幂公式为 abmod p = a^(b mod φ( p )+φ( p )) mod p
代码:
ll quickpow(ll a,ll b,ll mod)
{ll res=1%mod;while (b){if (b & 1) res = (long long)res * a % mod;a=(long long)a * a % mod;b >>= 1;}return res;
}
ll eular(ll n)
{ll ans = n;for(int i=2; i*i <= n; ++i){if(n%i == 0){ans = ans/i*(i-1);while(n%i == 0)n/=i;}}if(n > 1) ans = ans/n*(n-1);return ans;
}ll eularpow(ll a,ll b,ll p)
{ll phi = eular(p);ll tb = 0;tb=b%phi+phi;return quickpow(a,tb,p);
}
int main()
{ll a,b,p;cin>>a>>b>>p; cout<<eularpow(a,b,p);return 0;
}
欧拉定理(从理论到应用)相关推荐
- 【计算理论】计算复杂性 ( NP 完全问题 | 顶点覆盖问题 | 哈密顿路径问题 | 旅行商问题 | 子集和问题 )
文章目录 一.顶点覆盖问题 二.哈密顿路径问题 三.旅行商问题 四.子集和问题 五.NP 完全问题 一.顶点覆盖问题 顶点覆盖 ( Vertex Cover ) : 给定一个 无向图 G\rm GG ...
- 扒一扒那些叫欧拉的定理们(三)——简单多面体欧拉定理的抽象形式
早点关注我,精彩不迷路! 在前面的文章中,我们介绍和证明了简单多面体欧拉定理,相关内容请戳: 扒一扒那些叫欧拉的定理们(二)--简单多面体欧拉定理的证明 扒一扒那些叫欧拉的定理们(一)--基本介绍和简 ...
- 欧拉定理、快速幂与逆元
Color the necklace 时间限制:2000 ms | 内存限制:65535 KB 难度:0 描述 As we all know, girls love necklaces, espe ...
- 计算机系统与网络安全:理论课程内容
第一章 概述(1学时) 学习计算机系统与网络安全的知识要求:信息安全的主要研究领域:信息与信息技术基础:安全与信息安全含义与历史发展:安全体系结构(包括安全服务.安全机制及其相互关系):威胁与攻击 ...
- 扒一扒那些叫欧拉的定理们(十二)——经济学里的欧拉定理
早点关注我,精彩不迷路! 在前面的文章中,我们介绍的都是纯数学世界里的欧拉定理的各个结论,相关内容请戳: 扒一扒那些叫欧拉的定理们(十一)--欧拉数论定理 扒一扒那些叫欧拉的定理们(十)--群论观点下 ...
- RSA加密——欧拉定理
欧拉定理 质数:指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数 互质:公约数只有1的两个整数(记作:(a, b)= 1) 余数的基本属性: (a + b)% c = (a % c) + ...
- etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理
1. etcd 简介 etcd 官网定义: A highly-available key value store for shared configuration and service discov ...
- LLVM数据流分析的理论
LLVM数据流分析的理论 标量优化(scalar目录): 死代码消除(BDCE.cpp[code],ADCE.cpp[code],DCE.cpp[code]), 全局值编号(GVN.cpp[code] ...
- 参数服务器训练基本理论
参数服务器训练基本理论 参数服务器训练是分布式训练领域普遍采用的编程架构,主要解决以下两类问题: • 模型参数过大:单机内存空间不足,需要采用分布式存储. • 训练数据过多:单机训练太慢,需要加大训练 ...
最新文章
- LibManagementSys图书管理系统
- GirlView的分页
- 项目经理在项目各阶段的工作重点
- 大数据技术原理与应用-概述
- monkey 真机测试步骤
- centos 命令行执行多个命令_命令行如何执行jar包里面的方法
- 巧用PHP双$功能兼容线上线下配置文件
- 2019-05-16mysql忘记密码怎么办
- c4d语言包英文,Win版本MAXON Cinema 4D R21.027 C4D中文与英文版下载安装
- 手机的RFID射频技术应用
- Oracle常用sql语法手册
- 推荐几个在线编程学习的网站,程序员必备
- 域名证书到期监控告知
- Pandas教程 | 数据处理三板斧——map、apply、applymap详解
- 二分法求利率(非线性方程求解)
- 深入Nodejs技术栈
- 乔布斯在斯坦福大学演讲原文
- 自然科学领域期刊分区——什么是核心期刊(核心A、B、C)
- Origin将多个文件数据导入
- LeetCode 例题精讲 | 08 排列组合问题:回溯法的候选集合