题目描述
输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。
输入输出格式
输入格式:
三个整数b,p,k.
输出格式:
输出“b^p mod k=s”
s为运算结果
输入输出样例
输入样例#1
2 10 9
输出样例#1
2^10 mod 9=7
思路
模版题。
#include <stdio.h>
#include <iostream>
using namespace std;
int QuickPow(long long int a,long long int b,long long int p)
{
register long long int s=1;
while(b>0)
{
if(b%2)
{
s=s*a%p;
}
a=a*a%p;
b=b/2;
}
return s;
}
int main()
{
ios::sync_with_stdio(false);
long long int a,b,p;
cin>>a>>b>>p;
cout<<a<<"^"<<b<<" mod "<<p<<"=";
if(p==0)
{
cout<<0<<endl;
return 0;
}
else
{
cout<<QuickPow(a,b,p)%p<<endl;
}
return 0;
}