题目描述
对任意正整数 N,计算 XNmod233333 的值。
输入格式
共一行,两个整数 X 和 N。
输出格式
共一行,一个整数,表示 XNmod233333 的值。
数据范围
1≤X,N≤109
输入样例
in :2 3
out:5
思路
①裸的快速幂,使用快速幂模板即可。
②需要开long long。
③快速幂即用到了倍增的思想进行优化,阅读其代码即可懂。
代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
ll qmi(int a,int b,int q){
ll res = 1;
while(b){
if(b & 1) res = res * (ll)a % q; #如果b的二进制最后一位为1,即若b为奇数,更新答案
a = (ll)a * a % q; #a也需要转化为long long类型
b >>= 1; #这一位判断后b向右移位
}
return res;
}
int main()
{
int a,b,q = 233333;
cin>>a>>b;
cout<<qmi(a,b,q);
return 0;
}