[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;
}
相关推荐
rhett. li25 分钟前
FreeBSD系统中使用clang/clang++编译Skia源码的方法
c++·ui·用户界面
_风华ts42 分钟前
C++函数指针
c++·函数指针
威桑1 小时前
解决 Qt6 程序 在Linux 环境下无法输入中文的问题
linux·c++·qt
jghhh011 小时前
LT喷泉码编解码的MATLAB实现
数据库·算法·matlab
被遗忘在角落的死小孩1 小时前
抗量子 Winternitz One Time Signature(OTS) 算法学习
学习·算法·哈希算法
浅念-1 小时前
C++ :类和对象(4)
c语言·开发语言·c++·经验分享·笔记·学习·算法
YunchengLi1 小时前
【移动机器人运动规划】5 基于优化的轨迹规划 Part2
算法·机器人
shentuyu木木木(森)1 小时前
栈与队列基础
c++··队列
yuuki2332331 小时前
【C++】模拟实现 AVL树
java·c++·算法
dog2502 小时前
阿基米德的有限步逼近思想求圆面积
算法