import java.math.BigInteger; public class BigFactorial { public static void main(String[] args) { BigInteger out; System.out.println("Long.MAX_VALUE = " + Long.MAX_VALUE); out = factorial(20); System.out.println("20! = " + out); out = factorial(21); System.out.println("21! = " + out); } public static BigInteger factorial(long n) { BigInteger result = new BigInteger( "1") ; for ( int i = 1; i <= n; i++ ) { BigInteger iBig = new BigInteger( "" + i); // int i --> String result = result.multiply(iBig); } return result; } }