问题描述
给定
A, B, P
,求
(A^B) mod P
。
输⼊格式
输⼊共⼀⾏。
第⼀⾏有三个数,
N, M, P
。
输出格式
输出共⼀⾏,表示所求。
样例输⼊
2 5 3
样例输出
2
数据规模和约定
共
10
组数据
对
100%
的数据,
A, B为long long范围内的⾮负整数,P为int
内的⾮负整数。
感觉还处在得背模板的阶段。。
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string>
#include<set>
using namespace std;
long long fun(long long n, long long m,int p)
{
if(m==0) return 1;
if(m%2==1) return fun(n,m-1,p)*(n%p)%p;
long long t=fun(n,m/2,p);
return t*t%p;
}
int main()
{
long long n,m;
int p;
cin>>n>>m>>p;
cout<<fun(n,m,p);
}