-
欧拉定理:若 a a a 和 n n n 互质,则 a φ ( n ) ≡ 1 ( m o d n ) a^{\varphi(n)}\equiv1\space\space\space(mod\space\space n) aφ(n)≡1 (mod n)
-
欧拉定理的推论(费马定理):在 a a a 和 p p p 互质的前提下,当 p p p 为质数时, a p − 1 ≡ 1 ( m o d p ) a^{p-1}\equiv1\space\space\space(mod\space\space p) ap−1≡1 (mod p)
-
乘法逆元定义:若整数 b b b、 m m m 互质,并且 b ∣ a b|a b∣a,则存在一个整数 x x x,使得 a / b ≡ a ∗ x ( m o d m ) a/b\equiv a*x\space\space (mod\space\space m) a/b≡a∗x (mod m),称 x x x 为 b b b 的模 m m m 乘法逆元,记为 b − 1 ( m o d m ) b^{-1} (mod\space\space m) b−1(mod m)。
b b b 存在乘法逆元的充要条件是 b b b 与模数 m m m 互质。当模数 m m m 为质数时, b m − 2 b^{m-2} bm−2 即为 b b b 的乘法逆元。
问题转换为快速幂的计算: 快速幂模板
逆元模板
#include
using namespace std;
typedef long long LL;
LL ksm (LL a, LL k, LL p) {
LL res = 1;
while (k) {
if (k & 1) res = res * a % p;
a = a * a % p;
k >>= 1;
}
return res;
}
int main()
{
LL n, p;
cin >> n >> p;
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?