import java.math.BigInteger; public class Factorial_5_CalculateWidth { public static final int MAX = 25; public static BigInteger factorial(int n) { BigInteger prod = BigInteger.ONE; for (int i=1; i<=n; i++) prod = prod.multiply(new BigInteger(i +"")); return prod; } public static void main(String[] args) { int len = factorial(MAX).toString().length(); for (int i=0; i <= MAX; i++) System.out.printf("%2d %" + len + "d\n", i, factorial(i)); } }