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); }} |
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); } }} |
Exception: java.lang.IllegalArgumentException: n (-5) must be >= 0
