C++ 代码
blablabla
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int power(int a,int b,int p){//p为取模值
int ans=1%p;//取模
for(;b;b>>=1/*等相应位数上是1才计算,舍去最低位,遍历b在二进制表示下的所有数位*/){
if(b&1/*取出b在二进制表示下的最低位*/) ans=(long long)ans*a%p;//
a=(long long)a*a%p;//
}//取一位最后位,计算后右移动一位计算
return ans;
}
int main(){
int x,y,z;
cin>>x>>y>>z;
cout<<power(x,y,z)<<endl;
}
#### java代码
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
for(int i=0;i<n;++i) {
long x=scan.nextLong();
long y=scan.nextLong();
long p=scan.nextLong();
long ans=1%p;
for(;y!=0;y>>=1) {
if(y%2==1) ans=ans*x%p;
x=x*x%p;
}
System.out.println(ans);
}
}
}
blablabla