题目描述
定义“取模”运算:对于正整数 a 和 p,a % p 表示 a 除以 p 的余数,又称“模”运算。现在,输入三个正整数 b、p、k,请编程计算 b^p % k 的值。
输入格式
一行三个正整数,分别表示 b、p、k 的值。
输出格式
一行一个整数,表示 b^p % k 的值。
样例数据
input
2 10 9
output
7
数据规模与约定
b、p、k×k≤2147483647
时间限制:1s1s
空间限制:256MB
#include <bits/stdc++.h>
using namespace std;
int pow_mod (int b, int p, int k)
{
if(p==0) return 1%k;
if(p==1) return b%k;
int y=pow_mod(b, p/2, k);
if(p%2==0) return (y*y)%k;
else return (((y*y)%k)*b)%k;
}
int main()
{
int b,p,k;
cin>>b>>p>>k;
b=b%k;
cout<<pow_mod(b, p, k);
}