模运算
时间限制(普通/Java) :
1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 1026 测试通过 : 191
总提交 : 1026 测试通过 : 191
题目描述
给定整数a,b,n,要求计算(a^b)mod n
输入
多组数据,每组数据一行,为三个用空格隔开的整数a,b,n
1<=a<=5000,0<=b<=10^8,1<=n<=5000000
输出
每组数据输出一行,为所求值
样例输入
2 3 5
2 2 4
样例输出
3
0
题目来源
NUAA
裸的快速幂,套用模板就行了==
实现代码:
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
using namespace std;
#define mod 1000000007
long long qpow(long long x,long long y,long long n) {
long long now = 1,tmp = x;
while(y) {
if(y % 2)
now = (now * tmp) % n;
tmp = (tmp * tmp) % n;
y /= 2;
}
return now;
}
int main() {
long long x,y,n;
while(cin >> x >> y>>n){
cout<<qpow(x,y,n)<<endl;
}
return 0;
}