题目:90. 64位整数乘法
题目描述
求a乘b对p取模的值。
输入
第一行输入整数a,第二行输入整数b,第三行输入整数p。
输出
输出一个整数,表示a*b mod p的值。
数据范围
1≤a,b,p≤ 1 0 18 10^{18} 1018
时空限制
1s / 32MB
输入样例
3
4
5
输出样例
2
代码
#include<iostream>
using namespace std;
typedef unsigned long long ULL;
ULL a,b,p;
int main(){
scanf("%lld%lld%lld", &a,&b,&p);
ULL res = 0;
while(b){
if(b&1){
res = (res + a)%p;
}
b >>= 1;
a = a * 2 % p;
}
printf("%lld\n", res);
return 0;
}