
题目描述
给你三个整数 $a,b,p$,求 $a^b \bmod p$。
输入格式
输入只有一行三个整数,分别代表 $a,b,p$。
输出格式
输出一行一个字符串 a^b mod p=s,其中 $a,b,p$ 分别为题目给定的值, $s$ 为运算结果。
样例 #1
样例输入 #1
2 10 9
样例输出 #1
2^10 mod 9=7
提示
样例解释
$2^{10} = 1024$,$1024 \bmod 9 = 7$。
数据规模与约定
对于 $100\%$ 的数据,保证 $0\le a,b < 2^{31}$,$a+b>0$,$2 \leq p \lt 2^{31}$。
代码
//P1226 【模板】快速幂||取余运算
//https://www.luogu.com.cn/problem/P1226
//https://www.luogu.com.cn/record/83507119
#include<iostream>
using namespace std;
unsigned long long int ans,aa,bb;
int main(){
int a,b,c;
cin>>a>>b>>c;
ans=1,aa=a,bb=b;
while(bb!=0){
if(bb%2==1){
ans=(ans%c)*(aa%c)%c; //边除边模
}
aa=aa*aa%c;
bb/=2;
}
printf("%d^%d mod %d=%d\n",a,b,c,ans); //这次应该是自己第一次用printf
return 0;
}