洛谷——P1226 取余运算||快速幂
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷——P1226 取余运算||快速幂相关的知识,希望对你有一定的参考价值。
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=0,f=1; char ch=getchar(); while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘)f=-1;ch=getchar();} while(ch>=‘0‘&&ch<=‘9‘) x=x*10+ch-‘0‘,ch=getchar(); return x*f; } LL multi(LL a,LL b,LL p) { LL aa=0; while(b) { if(b&1) aa=(aa+a)%p; a=a*2%p,b>>=1; } return aa; } LL qpow(LL a,LL b,LL p) { LL res=1; while(b) { if(b&1) res=multi(res,a,p); a=multi(a,a,p),b>>=1; } 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); return 0; }
以上是关于洛谷——P1226 取余运算||快速幂的主要内容,如果未能解决你的问题,请参考以下文章