BigInteger modPow() Method in Java

Prerequisite: BigInteger Basics
The Java.math.BigInteger.modPow() method returns a BigInteger whose value is (thisexponent mod m ).
If exponent == 1, the returned value is (this mod m) and if exponent < 0, the returned value is the modular multiplicative inverse of (this-exponent). The method throws an ArithmeticException if m <= 0.

Syntax:

`public BigInteger modPow(BigInteger exponent, BigInteger m)`

Parameters: The method accepts two parameters.

• exponent: This parameter refers to the exponent.
• m: This parameter refers to the modulus.

Return Value: The method returns a BigInteger object whose value is ( thisexponent mod m ).

Exceptions:

• ArithmeticException: If (m <= 0) or the exponent is negative and this BigInteger is not relatively prime to m.

Examples:

```Input: biginteger1 = 23895
exponent = 15
biginteger2 = 14189
Output: 344
Explanation:
result = biginteger1.modPow(exponent, biginteger2)
23895^15 % 14189 = 344

Input: biginteger1 = 6547890621
exponent = 4532415
biginteger2 = 76543278906
Output: 1039609179
Explanation:
6547890621^4532415 % 76543278906 = 1039609179```

Below program illustrates the Java.math.BigInteger.modPow() method:

Java

 `// 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);``    ``}``}`

Output:
`23895^15 % 14189 = 344`

Previous
Next