[C++][算法基础]求a的b次方模p的值(快速幂)

给定 n 组 ,对于每组数据,求出 的值。

输入格式

第一行包含整数 n。

接下来 n 行,每行包含三个整数

输出格式

对于每组数据,输出一个结果,表示 的值。

每个结果占一行。

数据范围

1≤n≤100000,

1≤≤2×

输入样例:
复制代码
2
3 2 5
4 3 9
输出样例:
复制代码
4
1

代码:

cpp 复制代码
#include<iostream>
#include<algorithm>
using namespace std;

long long a,b;
int n,p;
const int N = 100010;

long long QuickMul(long long a,long long b,int p){
    long long res = 1;
    while(b != 0){
        if((b & 1) == 1){
            res = res * a % p;
        }
        b = b / 2;
        a = a * a % p;
    }
    return res;
}

int main(){
    cin>>n;
    while(n--){
        cin>>a>>b>>p;
        long long ans = QuickMul(a,b,p);
        cout<<ans<<endl;
    }
    return 0;
}
相关推荐
柒儿吖6 分钟前
DDlog 高性能异步日志库在 OpenHarmony 的 lycium 适配与分步测试
c++·c#·openharmony
民国二十三画生10 分钟前
C++(兼容 C 语言) 的标准输入语法,用来读取一行文本
c语言·开发语言·c++
爱思德学术11 分钟前
中国计算机学会(CCF)推荐学术会议-B(计算机体系结构/并行与分布计算/存储系统):SPAA 2026
算法
柒儿吖12 分钟前
基于 lycium 在 OpenHarmony 上交叉编译 utfcpp 完整实践
c++·c#·harmonyos
sTone8737512 分钟前
std::function/模板/裸函数指针选型指南
c++
28 分钟前
2.12矩阵问题,发牌,数字金字塔
线性代数·算法·矩阵
无聊的小坏坏35 分钟前
一文讲通:二分查找的边界处理
数据结构·c++·算法
m0_5287490035 分钟前
C语言错误处理宏两个比较重要的
java·linux·算法
云深处@44 分钟前
【C++11】包装器,智能指针
开发语言·c++
十五年专注C++开发1 小时前
CMake进阶:SelectLibraryConfigurations模块
c++·cmake·自动化构建