快速幂取模

快速幂取模

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

背景

king大佬思考了一个问题:7的10次方,怎样算比较快?

方法1:最朴素的想法,7*7=49,49*7=343,... 一步一步算,共进行了9次乘法。

这样算无疑太慢了,这时他想到, 也许可以拆分问题.

方法2:先算7*7得49,则7的5次方为49*49*7,再算它的平方,共进行了4次乘法。

模仿这样的过程,我们得到了快速幂算法。

同时有(a * a)%p == (a%p) * (a%p),请注意 每一步都取模 以免超过所能存储的最大数据范围

题目描述

给你三个整数 a,b,p
求 a^b mod p(a的b次方%p)
时间限制: 200ms
Tips:可以认为评测机1s内可以进行100,000,000次计算
int类型的变量可最大储存2∧31-1,long long则是2∧63-1

输入格式

输入只有一行三个整数,分别代表 a,b,p,中间以空格隔开。
保证0<a,b,p<= 2^33
请小心溢出

输出格式

输出一行一个字符串

a^b mod p=s
其中 a,b,p 分别为题目给定的值, s 为运算结果。
注意 空格

样例

输入

3 4 10

输出

3^4 mod 10=1

周末测试2

未参加
状态
已结束
规则
OI
题目
6
开始于
2021-09-24 19:45
结束于
2021-09-24 21:45
持续时间
2.0 小时
主持人
参赛人数
113