模运算 NOJ 1037

来源:互联网 发布:安卓手机安装windows 编辑:程序博客网 时间:2024/06/06 07:42

                                                                                模运算

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 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 1000000007long 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;}
0 0