当前位置: 首页 > article >正文

乘法逆元(快速幂,费马小定理)

#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
typedef long long ll;


ll power(ll a, ll b) { // 快速幂计算 (a^b % MOD)
    ll res = 1;
    while (b > 0) {
        if (b & 1) res = res * a % MOD;
        a = a * a % MOD;
        b >>= 1;
    }
    return res;
}

int main() {
    int T;
    cin >> T;
    while (T--) {
        ll N;
        cin >> N;
        cout << power(N, MOD - 2) << endl;
    }
    return 0;
}

乘法逆元:

a⋅x≡1(mod m):  a 与 b 在模 m 的意义下同余,这个 x 就被称为 a 在模 p 下的乘法逆元

3⋅5=15≡1(mod 7): 5 是 3 在模 7 下的乘法逆元

3⋅7≡1(mod10): 7 是 3 在模 10 下的乘法逆元

根据费马小定理:

对于任意整数 a 和一个质数 p,如果 a 和 p 互质

那么: a^(p−1) ≡ 1 (mod p)

对于:N⋅x ≡ 1(mod p),设所求为x

显然 x=N^(p-2)

直接通过 快速幂 计算 N^(mod−2)就可以得到乘法逆元


http://www.kler.cn/a/598014.html

相关文章:

  • 常见前端安全问题及解决方案
  • PyJSON5:高效、安全的JSON5处理库
  • Linux-数据结构-哈夫曼树-哈希表-内核链表
  • 【STL】string类
  • 死锁:当程序 “卡住“ 时,发生了什么?
  • wordpress主题使用中常见错误汇总
  • OpenGL实现摄像机(根据鼠标位置放大缩小视图)
  • How to install visual studio code on Linux mint 22
  • 详解内联容器标签<span>的用法
  • 幻影星空亮相CAAPA北京展 引领文旅产业升级转型
  • uniapp从 vue2 项目迁移到 vue3流程
  • 【网络层协议】NAT技术内网穿透
  • 【实战】deepseek数据分类用户评论数据
  • ADC噪声全面分析 -04- 有效噪声带宽简介
  • Tomcat常见漏洞攻略
  • 分布式系统设计陷阱,白话CAP理论
  • 【嵌入式学习2】位运算 - 控制语句
  • 游戏引擎学习第175天
  • 前端 -- 计算机图形学基础:光与三角形面(Mesh)求交
  • gonet开源游戏服务器环境配置