Related Articles

# BigIntegerMath factorial() function | Guava | Java

• Last Updated : 26 Jul, 2021

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 class` `import` `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 class` `import` `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`

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up