根据费马小定理,a^(p-1)mod m =1;
所以指数部分经过p-1次会重来,所以对于指数部分是对p-1取模
对于整体就是对p取模
P=1000000007;
但是对于质数取模有一点需要特判,如果取完模后发现指数部分为0,那么需要看底数是否为0,如果底数为0,那么结果应当是0,而不是1,如果不特判就会输出1。
那么该如何特判,其实只需要在求完指数以后,如果指数为0,我们就把它赋值为p-1,这样就不会因为指数而受影响
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
while(t-->0) {
long a=sc.nextLong();
long b=sc.nextLong();
long c=sc.nextLong();
long mod=1000000007;
long d=pow(b,c,mod-1);
long res=pow(a,d,mod);
System.out.println(res);
}
}
public static long pow(long base,long p,long m) {
long res=1%m;
while(p>0) {
if(p%2==1) {
res=(res*base)%m;
p--;
}
base=(base*base)%m;
p/=2;
}
return res;
}
}



京公网安备 11010502036488号