题目描述
给你三个整数 a,b,p,求 abmodp。
输入格式
输入只有一行三个整数,分别代表 a,b,p。
输出格式
输出一行一个字符串 a^b mod p=s
,其中 a,b,p 分别为题目给定的值, s 为运算结果。
样例 #1
样例输入 #1
样例输出 #1
提示
样例解释
210=1024,1024mod9=7。
数据规模与约定
对于 100% 的数据,保证 0≤a,b<231,a+b>0,2≤p<231。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#include<iostream> using namespace std; unsigned long long int ans,aa,bb; int main(){ int a,b,c; cin>>a>>b>>c; ans=1,aa=a,bb=b; while(bb!=0){ if(bb%2==1){ ans=(ans%c)*(aa%c)%c; } aa=aa*aa%c; bb/=2; } printf("%d^%d mod %d=%d\n",a,b,c,ans); return 0; }
|
参考文献:
1: 学委: 《快速幂和取余运算》, 2018-08-28
2: 龙啸空: 《题解 P1313 【计算系数】》, 2018-10-30