Java
private static BigDecimal calculateFactorial (int number) { BigDecimal factorial = BigDecimal.ONE; for (int i = 1; i <= number; i++) { factorial = factorial.multiply(new BigDecimal(i)); } return factorial; }
public static BigInteger calculateFactorial (BigInteger input) { BigInteger factorial = BigInteger.ONE; for (BigInteger i = BigInteger.ONE; i.compareTo(input) <= 0; i = i.add(BigInteger.ONE)) { factorial = factorial.multiply(i); } return factorial; }