求 a 乘 b 对 p 取模的值,其中 1≤a,b,p≤10^18。
第一行a,第二行b,第三行p。
一个整数,表示a*b mod p的值。
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 ll a,b,p; 5 ll quimul(ll a, ll b) 6 { 7 ll ans=0; 8 while(b) 9 { 10 if(b&1)ans=(ans+a)%p; 11 b>>=1; 12 a=(a+a)%p; 13 } 14 return ans; 15 } 16 int main() 17 { 18 cin>>a>>b>>p; 19 cout<<quimul(a,b); 20 21 return 0; 22 }