文章
3
粉丝
51
获赞
0
访问
1.4k
(a * b) % mod = (a % mod) * (b % mod) % mod
12 = 1100(二进制)
假设 x^n 为所求, n = 110010 = 100000 + 010000 + 000010, 对于 000001, 每加倍一次,1左移一位,所以只需要知道n的二进制表示位情况即可
#include <iostream>
#include <cstdio>
#define int long long
using namespace std;
const int mod = 233333;
int x, n;
signed main(){
cin >> x >> n;
int p = x;
int ans = 1;
for(int i = 0; i < 30; i ++){
if((n >> i) & 1){
ans = ans * p % mod;
}
p = (p % mod * p % mod) % mod;
}
cout << ans << endl;
}
登录后发布评论
暂无评论,来抢沙发