首先我们先介绍一下怎样求 a^b
我们用快速幂来求 a^b
//计算a^b
import java.io.*;
import java.util.*;
public class Main {
int a,b,n;
public static void main(String[] args) {
new Main().work();
}
void work(){
a = 7;
b = 561;
n = 561;
System.out.println(pow(a,b));
}
//计算a^b
int pow(int a,int b){
int sum=1;
while(b!=0){
if((b&1)!=0)
sum=(sum*a);
a=(a*a);
b>>=1;
}
return sum;
}
}
接下来我们来介绍一下怎么样求 (a^b)%n
同样的到里我们利用上面的方法
//计算a^b%n
import java.io.*;
import java.util.*;
public class Main {
int a,b,n;
public static void main(String[] args) {
new Main().work();
}
void work(){
a = 7;
b = 561;
n = 561;
System.out.println(pow(a,b)%n);
}
//计算a^b%n
int pow(int a,int b){
int sum=1;
while(b!=0){
if((b&1)!=0)
sum=(sum*a)%n;
a=(a*a)%n;
b>>=1;
}
return sum;
}
}