文章
43
粉丝
24
获赞
293
访问
6.5k
#include<bits/stdc++.h>
using namespace std;
long long x,n;
const int N = 233333;
long long pow(long long n){
long long ans = 1;
long long temp = x;
while(n != 0){
if((n & 1) == 1){//&将其左右的数都转换为二进制进行处理 ,5 & 1 → 101 & 001 = 001 → 1
ans = ((ans % N) * (temp % N)) % N;//temp为答案的部分因子,而非底数的幂,故而temp每次需自我平方:3^4=(3^2 )^2
}
temp = (temp % N) * (temp % N);//遇到乘法无脑取余就行
n = n >> 1;// n/=2;
}
return ans;
}
int main(){
cin >> x >> n;
cout << pow(n)%N << endl;//最后结果无脑取余
}
登录后发布评论
暂无评论,来抢沙发