#include <iostream>
using namespace std;
typedef unsigned long long ull;
ull quickmo(ull n,ull,m,ull mo) //n是底数,m是次数,mo是对谁取模
{
ull ans=1;
while(m)
{
if(m&1)
ans=ans*n%mo; //这里不要写成 ans*=n%mo; 会出错(大概是运算符优先顺序问题吧之前吃了一次亏)
n=n*n%mo;
m>>=1;
}
return ans;
}
const ull mo = 1e9+7;
int main()
{
int n,m;
while(cin>>n>>m)
cout<<quickmo(n,m,mo)<<endl;
return 0;
}
快速幂模板
最新推荐文章于 2024-05-06 20:56:34 发布