#3818. 快速幂

快速幂

题目描述

给定一个整数 xx、一个非负整数 nn,以及一个正整数 mm,请你计算:

xnmodmx^n \bmod m

由于 nn 的取值可能非常大,要求使用**倍增法(快速幂)**实现计算,使算法时间复杂度达到 O(logn)O(\log n)

请你实现一个函数 power(x, n, m) 完成上述运算,并在主函数中调用该函数进行测试。


输入格式

输入包含三个整数:

  • xx,满足 109x109-10^9 \le x \le 10^9
  • nn,满足 0n1090 \le n \le 10^9
  • mm,满足 1m1091 \le m \le 10^9

输出格式

输出一个整数,即:

(xn)modm(x^n) \bmod m


输入样例

2 10 1000

输出样例

24

(因为 210=10242^{10} = 10241024mod1000=241024 \bmod 1000 = 24