It is not possible to store factorial for large number like 50 into inbuilt data types like integer or long. Because factorial of 50 has almost 60 digits. Imagine how we can store it in int or long. We can find factorial of such numbers using **BigInteger** class defined in **java.math** package.

Below program shows how you can do this.

**Also Read: Factorial of Large Number in C and C++**

## Program for Factorial of Large Number in Java

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import java.math.BigInteger; import java.util.Scanner; class BigFactorial { public static void main(String arg[]){ BigInteger fac=new BigInteger("1"); int n; Scanner sc=new Scanner(System.in); System.out.println("Enter a number:"); n=sc.nextInt(); for(int i=2;i<=n;++i){ fac=fac.multiply(BigInteger.valueOf(i)); } System.out.println(fac); } } |

**Output**

Comment below if you are facing any difficulty to understand this program.

Anuradha DesaiWhy have you used 1 in in the line 6

where

BigInteger fac = new bigInteger(“1”)

Please explain

AdminI have initialized fac with factorial of 1 i.e. 1

Sandeep KumarI WANT TO KNOW MEANING OF 6%=15 ..C

CAN YOU HELP ME ….

N YOUR POSTS ARE VERY HELPFULL…..

javacit is 6=6%15;

najeebullahwrite a program that takes input as int and added them together continuously untill i input negative number

second write a program that print that sum of all odd number from 0 to 100