Factorial of a Number by Java Program


The Factorial of number is denoted by n! , is the product/multiplication of all positive integers less than or equal to n.

Where n is always a non-negative number and The value of 0! is 1, according to the convention for an empty product.

Example :

0!=1=1
1!=1=1
5!=5 * 4 * 3 * 2 * 1=120
12!=12 * 11 * 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1=479001600

Below are examples to calculate factorial of  a Number. I have consider all the cases like calculation of big factorial number by loop and also through recursion.

Factorial of a Number by using Java code loop.

class Factorial {
	public static void main(String args[]) {
		int n, c, fact = 1;

		System.out.println("Enter an integer to calculate it's factorial");
		Scanner in = new Scanner(System.in);

		n = in.nextInt();

		if (n < 0)
			System.out.println("Number should be non-negative.");
		else {
			for (c = 1; c <= n; c++)
				fact = fact * c;

			System.out.println("Factorial of " + n + " is = " + fact);
		}
	}
}

Factorial of a Big Integer Number by using loop

If calculation of number is too big which cross the Integer limit then use BigInteger instead if Integer.

class Factorial {
	public static void main(String args[]) {
		int n, c;
		BigInteger inc = new BigInteger("1");
		BigInteger fact = new BigInteger("1");

		Scanner input = new Scanner(System.in);

		System.out.println("Input an integer");
		n = input.nextInt();

		for (c = 1; c <= n; c++) {
			fact = fact.multiply(inc);
			inc = inc.add(BigInteger.ONE);
		}

		System.out.println(n + "! = " + fact);
	}
}

Factorial of Integer Number by using Java Recursion.

 

import java.util.Scanner;

public class FactorialByRecursion {

	public static void main(String[] args) {
		int n;
		System.out.println("Enter an integer to calculate it's factorial");
		Scanner in = new Scanner(System.in);

		n = in.nextInt();

		if (n < 0)
			System.out.println("Number should be non-negative.");
		else {
			System.out.println("Factorial of " + n + " is = " + factorial(n));
		}

	}

	private static int factorial(int num)
	{
		//Recursion Terminating condition if 0 terminate with value 1
		if(num==0)
			return 1;
		else
		return num*factorial(num-1);
	}

}

About Saurabh Gupta

My Name is Saurabh Gupta, I have approx. 10 Year of experience in Information Technology World manly in Java/J2EE. During this time I have worked with multiple organization with different client, so many technology, frameworks etc.
This entry was posted in Algorithm, Java and tagged , , , , , , . Bookmark the permalink.