El método java.math.BigInteger .sqrtAndRemainder() realiza una operación sobre el BigInteger actual mediante el cual se llama a este método. Este método se usa para calcular la raíz cuadrada entera (sqrt(this)) de este número y el resto de este número con el cuadrado. Devuelve una array de dos BigIntegers que contienen la raíz cuadrada entera ‘p’ de this y su resto (this – p*p), respectivamente. La clase BigInteger utiliza internamente una array de enteros para el procesamiento, por lo que la operación en un objeto de BigIntegers no es tan rápida como en las primitivas.
Nota: Este método está disponible desde JDK 9
Sintaxis:
public BigInteger[] sqrtAndRemainder()
Parámetros: Este método no acepta ningún parámetro.
Valor devuelto: este método devuelve una array de dos BigIntegers con la raíz cuadrada entera en el índice 0 y el resto en el índice 1.
Excepción: el número debe ser positivo, de lo contrario se lanza ArithmeticException .
Los siguientes programas ilustran el método sqrtAndRemainder() de la clase BigInteger
Ejemplo 1:
// Java program to demonstrate // sqrtAndRemainder() method of BigInteger import java.math.BigInteger; class Main { public static void main(String[] args) { // BigInteger object to store result BigInteger res[]; // For user input // Use Scanner or BufferedReader // Two object of String created // Holds the values to perform operation String input1 = "15"; // Convert the string input to BigInteger BigInteger a = new BigInteger(input1); // Using sqrtAndRemainder() method try { res = a.sqrtAndRemainder(); // Display the result System.out.println("The square root of\n" + a + "\nis " + res[0] + "\nand remainder is " + res[1]); } catch (ArithmeticException e) { System.out.println(e); } } }
Producción:
The square root of 15 is 3 and remainder is 6
Ejemplo 2:
// Java program to demonstrate // sqrtAndRemainder() method of BigInteger import java.math.BigInteger; class Main { public static void main(String[] args) { // BigInteger object to store result BigInteger res[]; // For user input // Use Scanner or BufferedReader // Two object of String created // Holds the values to perform operation String input1 = "625"; // Convert the string input to BigInteger BigInteger a = new BigInteger(input1); // Using sqrtAndRemainder() method try { res = a.sqrtAndRemainder(); // Display the result System.out.println("The square root of\n" + a + "\nis " + res[0] + "\nand remainder is " + res[1]); } catch (ArithmeticException e) { System.out.println(e); } } }
Producción:
The square root of 625 is 25 and remainder is 0
Ejemplo 3:
programa que muestra una excepción cuando el valor es negativo.
// Java program to demonstrate // sqrtAndRemainder() method of BigInteger import java.math.BigInteger; class Main { public static void main(String[] args) { // BigInteger object to store result BigInteger res[]; // For user input // Use Scanner or BufferedReader // Two object of String created // Holds the values to perform operation String input1 = "-9"; // Convert the string input to BigInteger BigInteger a = new BigInteger(input1); // Using sqrtAndRemainder() method try { res = a.sqrtAndRemainder(); // Display the result System.out.println("The square root of\n" + a + "\nis " + res[0] + "\nand remainder is " + res[1]); } catch (ArithmeticException e) { System.out.println(e); } } }
Producción:
java.lang.ArithmeticException: Negative BigInteger
Referencias: https://docs.oracle.com/javase/9/docs/api/java/math/BigInteger.html#sqrtAndRemainder–