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

《P1226 【模板】快速幂》

题目描述

给你三个整数 a,b,p,求 abmodp。

输入格式

输入只有一行三个整数,分别代表 a,b,p。

输出格式

输出一行一个字符串 a^b mod p=s,其中 a,b,p 分别为题目给定的值, s 为运算结果。

输入输出样例

输入 #1复制

2 10 9

输出 #1复制

2^10 mod 9=7

说明/提示

样例解释

210=1024,1024mod9=7。

数据规模与约定

对于 100% 的数据,保证 0≤a,b<231,a+b>0,2≤p<231。

代码实现:

#include <iostream>
using namespace std;

// 快速幂取模函数
long long fastPow(long long a, long long b, long long p) {
    long long res = 1 % p; // 初始化结果,处理p=1的情况
    a %= p; // 预处理a,避免a过大
    
    while (b > 0) {
        if (b & 1) { // 如果当前位为1,则乘入结果
            res = res * a % p;
        }
        a = a * a % p; // 底数平方
        b >>= 1; // 指数右移一位
    }
    
    return res;
}

int main() {
    long long a, b, p;
    cin >> a >> b >> p;
    
    long long result = fastPow(a, b, p);
    
    cout << a << "^" << b << " mod " << p << "=" << result << endl;
    
    return 0;
}    

http://www.xdnf.cn/news/5358.html

相关文章:

  • 开疆智能Profinet转canopen网关连接易福门(IFM)传感器配置案例
  • QB/T 1649-2024 聚苯乙烯泡沫塑料包装材料检测
  • 大模型MCP更高效的通信:StreamableHTTP协议
  • 欧拉计划 Project Euler 69(欧拉总计函数与最大值)题解
  • 炫酷粒子系统动画实战:Matplotlib实现银河漩涡效果
  • SierraNet M1288网络损伤功能显著助力GPU互联网络的测试验证,包含包喷洒,LLR等复杂特性的验证测试
  • GMS 与非 GMS:有何区别?
  • Java基础:代理
  • KNOWLEDGE-BASED SYSTEMS(KBS期刊)投稿经验分享
  • # 深度学习实操 附录B 深入解析 tensorflow 自动微分
  • 纯惯性导航、非线性最小二乘法纯uwb测距导航定位、惯性uwb松组合导航、惯性uwb紧组合导航,四种方法对比
  • 圆角边框 盒子阴影 文字阴影
  • Linux进程间通信(四)之补充【日志】
  • PCB设计实践(十三)PCB设计中差分线间距与线宽设置的深度解析
  • 蓝牙GAP协议概述
  • AI赋能研究工作:我的深度学习助手使用体验(DeepResearch)
  • 认识 Linux 内存构成:Linux 内存调优之内存分配机制和换页行为认知
  • ERP学习(二):用友软件产品之系统管理
  • 学习黑客5 分钟深入浅出理解SCP
  • 【从零实现JsonRpc框架#3】线程模型与性能优化
  • 《设计数据密集型应用》——阅读小记
  • JAVA——抽象类和接口的区别
  • 【Linux基础】系统监控和进程管理指令
  • 【Reality Capture 】Reality Capture1.5中文版安装教程(附安装包下载)
  • 英语六级---2024.12卷三 仔细阅读2
  • VRRP协议-IP地址冗余配置
  • Autoware播放提示音
  • ospf实验报告
  • Markdown—LaTeX 数学公式
  • 深入解析路由策略:从流量控制到策略实施