BigIntegerMath factorial() function | Guava | Java

The method factorial(int n) of Guava’s BigIntegerMath class is used to find the factorial of the given number. It returns n!, that is, the product of the first n positive integers.
Syntax: 
 
public static BigInteger factorial(int n)
Parameters: This method takes the number n as parameter whose factorial is to be found.
Return Value: This method returns the factorial of the given number n.
Exceptions: This method throws IllegalArgumentException if n < 0.
Note: 
 
- The method returns 1 if n == 0.
 - The result takes O(n log n) space, so use cautiously.
 - This uses an efficient binary recursive algorithm to compute the factorial with balanced multiplies.
 
Below examples illustrates the BigIntegerMath.factorial() method:
Example 1:
 
Java
// Java code to show implementation of// factorial() method of Guava's BigIntegerMath classimport java.math.*;import com.google.common.math.BigIntegerMath;class GFG {    // Driver code    public static void main(String args[])    {        int n1 = 10;        // Using factorial(int n) method of        // Guava's BigIntegerMath class        BigInteger ans1 = BigIntegerMath.factorial(n1);        System.out.println("Factorial of " + n1                           + " is: " + ans1);        int n2 = 12;        // Using factorial(int n) method of        // Guava's BigIntegerMath class        BigInteger ans2 = BigIntegerMath.factorial(n2);        System.out.println("Factorial of " + n2                           + " is: " + ans2);    }} | 
Output: 
Factorial of 10 is: 3628800 Factorial of 12 is: 479001600
Example 2:
 
Java
// Java code to show implementation of// factorial() method of Guava's BigIntegerMath classimport java.math.*;import com.google.common.math.BigIntegerMath;class GFG {    // Driver code    public static void main(String args[])    {        try {            int n1 = -5;            // Using factorial(int n) method of            // Guava's BigIntegerMath class            // This should throw "IllegalArgumentException"            // as n < 0            BigInteger ans1 = BigIntegerMath.factorial(n1);            System.out.println("Factorial of " + n1                               + " is: " + ans1);        }        catch (Exception e) {            System.out.println("Exception: " + e);        }    }} | 
Output: 
Exception: java.lang.IllegalArgumentException: n (-5) must be >= 0
				
					


