蓝桥杯 ADV-204 快速幂

算法提高 快速幂  

时间限制:1.0s   内存限制:256.0MB

    

问题描述

  给定A, B, P,求(A^B) mod P。

输入格式

  输入共一行。
  第一行有三个数,N, M, P。

输出格式

  输出共一行,表示所求。

样例输入

2 5 3

样例输出

2

数据规模和约定

  共10组数据
  对100%的数据,A, B为long long范围内的非负整数,P为int内的非负整数。

分析:模板题。快速幂。

代码:

#include<iostream>
#include<algorithm>
using namespace std;
int main() {
	long long A, B, P;
	cin >> A >> B >> P;
	long long ans = 1;
	while (B != 0) {
		if (B & 1) {
			ans *= A;
			ans %= P;
		}
		A = (A % P) * (A % P);
		A %= P;
		B >>= 1;
	}
	cout << ans << endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/g28_gwf/article/details/88383744