文章
1
粉丝
0
获赞
2
访问
67
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll string_mod(const string&s,ll mod){
ll res = 0;
for(char c:s){
res = (res*10+(c-'0'))%mod;
}
return res;
}/*
大数取模优化
因n极大(1e100000位),需用费马小定理优化:
模数p=1e9+7(质数)
根据费马小定理,2^(p-1) ≡ 1 mod p → 2^n ≡ 2^(n mod (p-1)) mod p
*/
ll qm(ll q,ll n,ll mod){
ll ans =1 ;
q = q% mod;
while(n){
if(n&1) ans = (ans*q)%mod;
q = (q*q)%mod;
n >>=1;
}
return ans;
}
int main(){
string n, m;
cin>>n>>m;
cout<<qm(2,string_mod(n,1000000006),1000000007);
}
登录后发布评论
暂无评论,来抢沙发