洛谷P1226 【模板】快速幂||取余运算
题目描述
输入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<cstdio>
#include <iostream>
using namespace std;
long long powermod(long long a,long long b, long long c)
{
a%=c;
long long ans=1;
while(b)
{
if(b&1)
ans=ans*a%c;
b>>=1;
a=a*a%c;
}
return ans%c;
}
int main()
{
long long a,b,c,s;
scanf("%lld%lld%lld",&a,&b,&c);
s=powermod(a,b,c);
cout<<a<<"^"<<b<<" mod "<<c<<"="<<s;
return 0;
}