Как посчитать факториал на Java

public static BigInteger factorial(int value){
    if(value < 0){
        throw new IllegalArgumentException("Value must be positive");
    }

    BigInteger result = BigInteger.ONE;
    for (int i = 1; i <= value; i++) {
        result = result.multiply(BigInteger.valueOf(i));
    }

    return result;
}

http://stackoverflow.com/questions/891031/is-there-a-method-that-calculates-a-factorial-in-java