# 【模板】快速幂||取余运算
## 题目描述
给你三个整数 $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}$。
#include<iostream> #include<cstdio> #include<cmath> using namespace std; int a,b,p,res=1,temp; void qmi()//快速幂
{
while(b)
{
if(b&1)res=1ll*res*a%p;
a=1ll*a*a%p;
b>>=1;//忘记进行改变b的数值
}
} int main() { scanf("%d%d%d",&a,&b,&p); int x=a; int y=b; qmi(); cout<<x<<"^"<<y<<" mod "<<p<<"="<<res; return 0; }
浙公网安备 33010602011771号