2389 - 取余运算

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

输入bpk的值,求bp mod k的值。其中bpk

题目输入

一行,b, p, k,以空格隔开。(1000 <= p <= 2^64 - 1)

题目输出

一行,输出形式为b^p mod k=xxx。 (等号前后无空格)

其中xxx为计算出的结果。

输入/输出样例

输入格式

2 10 9

输出格式

2^10 mod 9=7

C++解答

#include<cstdio>
#include<iostream>
using namespace std;
long long n,p,mm,ans,q;
int main(){
	cin>>n>>p>>mm;
	printf("%lld^%lld mod %lld=",n,p,mm);
	ans=1;
	q=n;
	while (p){
		if (p & 1) ans=ans*q %mm;
		p>>=1;
		q=q*q % mm;
	}
	cout<<ans<<endl;
	return 0;
}