Método Java.math.BigInteger.modInverse() en Java

Requisito previo: Conceptos básicos de BigInteger

El método modPow() devuelve el inverso multiplicativo modular de este, mod m. Este método arroja una ArithmeticException si m <= 0 o si no tiene un módulo inverso multiplicativo m (es decir, mcd(this, m) != 1).

Sintaxis:

public BigInteger modInverse(BigInteger m)

Parámetros: m – el módulo.

Valor de retorno: este método devuelve un objeto BigInteger cuyo valor es ((this)^(-1) mod m).

Excepción:

  • ArithmeticException – m <= 0, o este BigInteger no tiene módulo inverso multiplicativo m (es decir, este BigInteger no es primo relativo a m).

Los siguientes programas ilustran el método BigInteger.modInverse():

Programa 1 :

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("8");
        biginteger2 = new BigInteger("21");
  
        // perform modInverse operation on biginteger1 using biginteger2.
        result = biginteger1.modInverse(biginteger2);
  
        String expression = biginteger1 + " ^ -1 % "
                            + biginteger2 + " = " + result;
  
        // print result value
        System.out.println(expression);
    }
}

Salida :

8 ^ -1 % 21 = 8

Programa 2:

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 + " ^ -1 % "
                            + biginteger2 + " = " + result;
  
        // print result value
        System.out.println(expression);
    }
}

Producción :

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)

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

Publicación traducida automáticamente

Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *