### PROBLEM LINK:

**Author:** thvardhan

**Tester:** thvardhan

### DIFFICULTY:

Medium

### PREREQUISITES:

Arbitrary-precision arithmetic,Factorial

### PROBLEM:

You are given a number N you have to find its factorial.

### QUICK EXPLANATION:

We use bigInteger instead of long/int in a loop which calculates factorial.

### EXPLANATION:

We use a BigInteger class to solve this problem. BigIntegers can hold 10^200 digit long digits.

So here we make a object of BigInteger

```
BigInteger int=new BigInteger("1");
```

the 1 we passed in the constructor means the initial value of this big integer will be 1.Now we just take input from console from either scanner or bufferedreader as a string.And then we do this

```
for (int i = 1; i <= n; i++) {
int = fact.multiply(new BigInteger(i + ""));
}
```

note we use strings not integers to store this big digit.this loop calculates the factorial and store it in int. now we just print it with

```
System.out.println(int);
```