目录
875. 快速幂
题目:
快速求的值
思路:
1、先预处理出 这b个数
2、将 用 这b个数来组合
即组合成
b可以用二进制数来表示
import java.util.*;
class Main
{
public static long qmi(long a,long b,long p)
{
long res=1;
while(b!=0)
{
if((b&1)==1) res=res*a%p;
b>>=1; //b右移一位
a=a*a%p; //更新a,a依次为a^{2^0},a^{2^1},a^{2^2},....,a^{2^logb}
}
return res;
}
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
while(n-->0)
{
int a=sc.nextInt(),k=sc.nextInt(),p=sc.nextInt();
System.out.println(qmi(a,k,p));
}
}
}