Related Articles
BigIntegerMath factorial() function | Guava | Java
• Last Updated : 15 Nov, 2018

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 BifIntegerMath.factorial() method:

Example 1:

 `// 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 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.

My Personal Notes arrow_drop_up
Recommended Articles
Page :