Java BigInteger modPow()方法
Java.math.BigInteger.modPow()方法返回一个BigInteger,其值为(thisexponent mod m)。
如果exponent == 1,返回值为(this mod m);如果exponent < 0,返回值为(this-exponent )的模块化乘法逆。如果m<=0,该方法会抛出一个ArithmeticException。
语法
public BigInteger modPow(BigInteger exponent,BigInteger m)
参数: 该方法接受两个参数。
- exponent : 这个参数指的是指数。
- m : 这个参数指的是模数。
返回值: 该方法返回一个BigInteger对象,其值为(该指数 mod m)。
异常情况
- 异常:ArithmeticException。如果(m <= 0)或者指数是负的,并且这个BigInteger不是相对于m的质数。
例子。
输入 : biginteger1 = 23895
exponent = 15
biginteger2 = 14189
输出 : 344
解释 :
result = biginteger1.modPow(exponent, biginteger2)
23895^15 % 14189 = 344
输入 : biginteger1 = 6547890621
exponent = 4532415
biginteger2 = 76543278906
输出 : 1039609179
解释 :
6547890621^4532415 % 76543278906 = 1039609179
以下程序说明了Java.math.BigInteger.modPow()方法:
// Code to illustrate modpow() method of BigInteger
import java.math.*;
import java.util.Scanner;
public class GFG {
public static void main(String[] args)
{
// Create 3 BigInteger objects
BigInteger biginteger1, biginteger2, result;
// Initializing all BigInteger Objects
biginteger1 = new BigInteger("23895");
biginteger2 = new BigInteger("14189");
BigInteger exponent = new BigInteger("15");
// Perform modPow operation on the objects and exponent
result = biginteger1.modPow(exponent, biginteger2);
String expression = biginteger1 + "^" + exponent + " % "
+ biginteger2 + " = " + result;
// Displaying the result
System.out.println(expression);
}
}
输出
23895^15 % 14189 = 344
参考资料 : https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#abs()