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