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
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define LL long long using namespace std; LL a,b,p,ans; LL read() { LL x=,f=; char ch=getchar(); ;ch=getchar();} +ch-',ch=getchar(); return x*f; } LL multi(LL a,LL b,LL p) { LL aa=; while(b) { ) aa=(aa+a)%p; a=a*%p,b>>=; } return aa; } LL qpow(LL a,LL b,LL p) { LL res=; while(b) { ) res=multi(res,a,p); a=multi(a,a,p),b>>=; } return res; } int main() { a=read(),b=read(),p=read(); ans=qpow(a,b,p); printf("%lld^%lld mod %lld=%lld",a,b,p,ans); ; }