Java.math.BigInteger.modInverse() method in Java (original) (raw)
Last Updated : 17 Apr, 2023
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);
`` BigInteger biginteger1, biginteger2, result;
`` biginteger1 =
new
BigInteger("
8
");
`` biginteger2 =
new
BigInteger("
21
");
`` result = biginteger1.modInverse(biginteger2);
`` String expression = biginteger1 + " ^ -
1
% "
`` + biginteger2 + " = " + result;
`` 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);
`` BigInteger biginteger1, biginteger2, result;
`` biginteger1 =
new
BigInteger(
88882
);
`` biginteger2 =
new
BigInteger(
22224
);
`` result = biginteger1.modInverse(biginteger2);
`` String expression = biginteger1 + " ^ -
1
% "
`` + biginteger2 + " = " + result;
`` 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)