Open In App

Java.math.BigInteger.modInverse() method in Java

Last Updated : 17 Apr, 2023
Suggest changes
Share
Like Article
Like
Report

Prerequisite : BigInteger Basics The modInverse() method returns modular multiplicative inverse of this, mod m. This method throws an ArithmeticException if m <= 0 or this has no multiplicative inverse mod m (i.e., gcd(this, m) != 1). 

Syntax:

public BigInteger modInverse(BigInteger m)

Parameters: m - the modulus. 

Return Value: This method returns a BigInteger object whose value is ((this)^(-1) mod m). 

Exception:

  • ArithmeticException - m <= 0, or this BigInteger has no multiplicative inverse mod m (that is, this BigInteger is not relatively prime to m).

Below programs illustrate the BigInteger.modInverse() method: 

Program 1

Java
import java.math.*; import java.util.Scanner; public class GFG {  public static void main(String[] args)  {  Scanner sc = new Scanner(System.in);  // create 2 BigInteger objects  BigInteger biginteger1, biginteger2, result;  // Initialize all BigInteger Objects  biginteger1 = new BigInteger(&quot;8&quot;);  biginteger2 = new BigInteger(&quot;21&quot;);  // perform modInverse operation on biginteger1 using biginteger2.  result = biginteger1.modInverse(biginteger2);  String expression = biginteger1 + &quot; ^ -1 % &quot;  + biginteger2 + &quot; = &quot; + result;  // print result value  System.out.println(expression);  } } 

Output:

8 ^ -1 % 21 = 8

Program 2 : 

Java
import java.math.*; import java.util.Scanner; public class GFG {  public static void main(String[] args)  {  Scanner sc = new Scanner(System.in);  // create 2 BigInteger objects  BigInteger biginteger1, biginteger2, result;  // Initialize all BigInteger Objects  biginteger1 = new BigInteger(88882);  biginteger2 = new BigInteger(22224);  // perform modInverse operation on biginteger1 using biginteger2.  result = biginteger1.modInverse(biginteger2);  String expression = biginteger1 + &quot; ^ -1 % &quot;  + biginteger2 + &quot; = &quot; + result;  // print result value  System.out.println(expression);  } } 

Output :

Exception in thread "main" java.lang.ArithmeticException: BigInteger not invertible. at java.math.MutableBigInteger.modInverse(Unknown Source) at java.math.MutableBigInteger.mutableModInverse(Unknown Source) at java.math.BigInteger.modInverse(Unknown Source) at BigInteger.GFG2.main(GFG2.java:23)

Reference: https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#modInverse(java.math.BigInteger)


Similar Reads