# 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`

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Previous
Next