模运算 NOJ 1037

                                                                                模运算

时间限制(普通/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 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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2015-04-16 14:31  Tob__yuhong  阅读(197)  评论(0编辑  收藏  举报

导航