input:
2
3 2 4
450 768 517
output:
1
34
简单的次方求余,一步步拆解即可,比如3^4%5,可以看成((4+5)*3^3)%5,只需要考虑(4*3^3)%5,同理往下推,次方用来计数,小于除数就乘底数,次方减一,大于除数就求余,把每次的余数当结果。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int e_num = Integer.parseInt(scan.nextLine());//测试数
while(e_num>0){
String num[] = scan.nextLine().split(" "); //目标数组
int gen = Integer.parseInt(num[0]); //底数
int i = 0;
while(i < Integer.parseInt(num[1])){ //次数
if(gen >= Integer.parseInt(num[2])){
gen = gen % Integer.parseInt(num[2]);
}else{
if(i != Integer.parseInt(num[1])-1 ){
gen = gen * Integer.parseInt(num[0]);
}
i ++;
}
}
System.out.println(gen);
e_num --;
}
}
}