【模板】快速幂 | 取余运算

发布时间 2023-07-10 09:52:58作者: 未抑郁的刘大狗

题目


【模板】快速幂 | 取余运算

题目描述

给你三个整数 a,b,p,求abmod p

输入格式

输入只有一行三个整数,分别代表 a,b,p

输出格式

输出一行一个字符串 a^b mod p=s,其中 a,b,p分别为题目给定的值, s 为运算结果。

样例 #1

样例输入 #1


2 10 9

样例输出 #1


2^10 mod 9=7

提示

样例解释

210 = 10241024 mod 9 = 7

数据规模与约定

对于 100% 的数据,保证 a,b ≤ 231a+b>0p ≤ 231

题解

题意:

         求出a^b mod p=s并以此格式输出

思路:

        这是一道模板题,并没有什么好说的,直接套模板就可以了


#include<bits/stdc++.h>
using namespace std;
unsigned long long a,b,k,ans=1;
long long js(long long a,long long b,long long k){
	while(b!=0){
		if(b&1)
			ans=ans*a%k;
		a=a*a%k;
		b>>=1;
	}return ans;
}
int main(){
	cin>>a>>b>>k;
	ans=js(a,b,k);
	cout<<a<<"^"<<b<<" mod "<<k<<"="<<ans<<endl;
	return 0;
}