In this post we’ll see a Java program to find the factorial of a number.

Factorial of a non-negative integer n is product of all positive integers less than or equal to n. For example

5! = 5 X 4 X 3 X 2 X 1 = 120

### Factorial program in Java

Factorial program in Java can be written as both iterative as well as recursive solution. In this post both of the solutions are given.

### Factorial program using iteration

In the following program user is asked to enter the number for which factorial has to be calculated. In iterative logic you can start a for loop with the entered number and decrease it by 1 in each iteration. What you need is the multiplication of all the numbers in the loop.

import java.util.Scanner; public class Factorial { public static void main(String[] args) { // Input from user Scanner input = new Scanner(System.in); System.out.println("Enter a number: "); int number = input.nextInt(); int factorial = 1; for(int i = number; i >= 1; i--){ factorial = factorial * i; } System.out.println("Factorial of " + number + " is " + factorial); } }

__Output__Enter a number: 5 Factorial of 5 is 120

### Factorial program in Java using recursion

In the recursive logic to write factorial Java program, you need to call the same method recursively passing the (number – 1) as parameter every time until the base case (number = 1) is reached.

import java.util.Scanner; public class Factorial { public static void main(String[] args) { // Input from user Scanner input = new Scanner(System.in); System.out.println("Enter a number: "); int number = input.nextInt(); int factorial = calculateFactorial(number); System.out.println("Factorial of " + number + " is " + factorial); } // Factorial using recursion private static int calculateFactorial(int num){ // base case if(num == 1){ return 1; }else{ return num * calculateFactorial(num - 1); } } }

__Output__Enter a number: 8 Factorial of 8 is 40320

That's all for the topic **Java Program to Find Factorial**. If something is missing or you have something
to share about the topic please write a comment.

**You may also like**