欧拉定理与费马小定理

1、欧拉(Euler)定理
mZ+,m2,则aZ,(m,a)=1,有

aφ(m)1(modm)

2、费马(Fermat)小定理
设p是素数,则aZ
apa(modp)
ap11(modp)

### 数论定理相关算法题目推荐 在在线评测平台中,涉及数论定理(如欧拉函数、费马小定理、威尔逊定理)的题目非常常见,尤其在编程竞赛和算法学习中具有重要地位。以下是一些推荐的题目和平台: #### 1. **欧拉函数欧拉定理** - **洛谷**:P5091 【模板】扩展欧拉定理 该题目要求实现扩展欧拉定理,处理大指数幂的模运算问题,适合练习欧拉定理的应用。 - **ATcoder**:ARC090D - People on a Line 虽然不是直接涉及欧拉定理,但需要利用欧拉函数和模运算的相关性质进行推导。 #### 2. **费马小定理** - **洛谷**:P3197 [HNOI2008]越狱 该题目可以通过费马小定理优化幂运算,计算模意义下的幂次。 - **ATcoder**:ABC164E - Two Currencies 涉及模运算费马小定理,适合练习如何快速求解模幂问题。 #### 3. **威尔逊定理** - **洛谷**:P2300 合并神犇 虽然不直接使用威尔逊定理,但需要理解阶乘模数的关系,适合巩固威尔逊定理的推导基础。 - **ATcoder**:AGC001D - Arrays and XOR 需要结合威尔逊定理数论推导,分析阶乘模数之间的关系。 #### 4. **综合应用题目** - **洛谷**:P3978 [TJOI2015]概率论 综合运用欧拉定理费马小定理,涉及概率论组合数学,适合提高综合应用能力。 - **ATcoder**:ARC092C - 2D Plane 2N Points 结合欧拉函数模运算,需要推导复杂的数论式子,适合练习数论定理的综合应用。 ### 代码示例 以下是一个使用费马小定理求解模逆元的示例代码: ```python MOD = 10**9 + 7 def mod_pow(a, b, mod): result = 1 a %= mod while b > 0: if b % 2 == 1: result = (result * a) % mod a = (a * a) % mod b //= 2 return result # 使用费马小定理求逆元 def mod_inverse(a, mod): return mod_pow(a, mod - 2, mod) a = 5 print(mod_inverse(a, MOD)) # 输出 5 的逆元 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值