64位整数乘法
1 #include<bits/stdc++.h> 2 using namespace std; 3 long long a,b,p; 4 long long mul(long long a,long long b,long long p) 5 { 6 long long ans=0; 7 while(b) 8 { 9 if(b&1) ans=(ans+a)%p; 10 a=a*2%p; 11 b>>=1; 12 } 13 return ans%p; 14 } 15 int main() 16 { 17 scanf("%lld%lld%lld",&a,&b,&p); 18 long long ans=mul(a,b,p)%p; 19 printf("%lld",ans); 20 return 0; 21 }