根据费马小定理,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;
	}

}