位运算

位运算

1.

求a的b次方对p取模的值

快速幂模板

typedef long long ll;
long long  power(ll a,ll b,ll p)
{  

	int ans=1%p;
     while(b)
  {
	if(b&1)
	ans=ans*a%p;
            a=a*a%p;
	b>>=1; 
  }
 return ans;
 } 

2.

64位整数乘法

求a乘b对p取模

ll power(ll a,ll b,ll p)
	{
  ll ans=0%p;
while(b)
{
     if(b&1)
    ans=(ans+a)%p;
    a=a*2%p;
    b>>=1;
}
return ans;
}
posted @ 2020-01-31 20:21  arbor_one  阅读(98)  评论(0)    收藏  举报