Marshal's Confusion III | ||||||
|
||||||
Description | ||||||
Marshallike to solve acm problems.But they are very busy, one day they meet a problem. Given three intergers a,b,c, the task is to compute a^(b^c))%317000011. so the turn to you for help. | ||||||
Input | ||||||
The first line contains an integer T which stands for the number of test cases. Each case consists of three integer a, b, c seperated by a space in a single line. 1 <= a,b,c <= 100000 | ||||||
Output | ||||||
For each case, print a^(b^c)%317000011 in a single line. | ||||||
Sample Input | ||||||
2 1 1 1 2 2 2 | ||||||
Sample Output | ||||||
1 16 |
||||||
Author |
#include<cstdio> #include<cmath> #include<queue> #include<iostream> using namespace std; const long m=317000011; long ksm(long x,long y,int m)//x^y { long sum=x; long res=1; while(y>0) { if(y%2==1) { res=(res*sum)%m; } sum=(sum*sum)%m; y/=2; //cout<<y<<endl; } return res; } int main() { int T; long a,b,c; while(~scanf("%d",&T)) { while(T--) { scanf("%ld%ld%ld",&a,&b,&c); long ss=ksm(a,ksm(b,c,m),m); ss%=m; printf("%ld ",ss); } } // cout<<ksm(2,1)<<endl; }