大家好,我是爬行系。今天打卡一道简单的模板题,考查了快速幂运算和取余运算。
文章目录
前言
同余定理:(a*b)%p= (a%p * b%p) %p
题目描述
题目描述
给你三个整数 a,b,pa,b,p,求 a^b mod p.
输入格式
输入只有一行三个整数,分别代表 a,b,pa,b,p。
输出格式
输出一行一个字符串 a^b mod p=s,其中 a,b,pa,b,p 分别为题目给定的值, ss 为运算结果。
题目链接
AC代码(快速幂模板)
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
long a=sc.nextLong();
long b=sc.nextLong();
long p=sc.nextLong();
long res=1,base=a,m=b;
while(m!=0) {
if((m&1)==1) {
res=(res*base)%p;
}
base=(base*base)%p;
m=m>>1;
}
System.out.println(a+"^"+b+" mod "+p+"="+res%p);
}
}