快速幂之 a*b^p
求 a 乘 b对 p 取模的值。
输入格式
第一行输入整数a,第二行输入整数b,第三行输入整数p。
输出格式
输出一个整数,表示a*b mod p的值。
数据范围
1≤a,b,p≤1e18
输入样例:
3
4
5
输出样例:
2
#include<bits/stdc++.h> using namespace std; typedef long long ll; int main(){ ll a,b,p; cin>>a>>b>>p; ll res = 0 //结果 while(b){ if(b & 1){ res = (res + a) % p; // 进行值想加 } b >>= 1; // b 左移一位,相当于b/2 a = (a<<1) % p; //a 变为原来的两倍 } cout << res <<endl; return 0; }

浙公网安备 33010602011771号