In this post we will learn about **Java program to find factorial of a number.**

Before Witting java program let’s understand what is Factorial number?

**What is Factorial Number?**

In mathematics language, we can say that the **factorial** of a **non-negative integer n,** denoted by** n!** is the product or multiplication of all positive integers less than or equal to n.

For example, 5 ! = 5 × 4 × 3 × 2 × 1 = 120.

The factorial of a negative number doesn’t exist. And the factorial of 0 is 1

We will solve this problem statement using below 2 approaches:

- Using for loop
- Using recursion

**Example 1:**

**Using for loop**

Below source code of the Java Program reads number from the user and finds factorial value using for loop

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
package com.kkjavatutorials.client; import java.util.Scanner; /** * @author KK JavaTutorials * This Java program is all about How to find factorial of a input number using for loop */ public class ClientTest1 { public static void main(String[] args) { try (Scanner scanner = new Scanner(System.in)) { // Take a number from keyboard using Scanner System.out.println("Enter a Number:"); int number = scanner.nextInt(); int fact = findFactorial(number); System.out.println("Factorial of input " + number + " is " + fact); } catch (Exception e) { System.out.println("Please Enter valid number.."); e.printStackTrace(); } } //find factorial of a number using for loop private static int findFactorial(int number) { //Validation for negative number if(number<0){ throw new RuntimeException("The factorial of a negative number doesn’t exist.try With positive number"); } int factorial = 1; for (int i = number; i >= 1; i--) { factorial = factorial * i; } return factorial; } } |

**Example 2:**

**Using recursion**

Below source code of the Java Program reads number from the user and finds factorial value With using Recursion.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
package com.kkjavatutorials.client; import java.util.Scanner; /** * @author KK JavaTutorials * This Java program is all about How to find factorial of a input umber using recursion */ public class ClientTest2 { public static void main(String[] args) { try (Scanner scanner = new Scanner(System.in)) { // Take a number from keyboard using Scanner System.out.println("Enter a Number:"); int number = scanner.nextInt(); int fact = findFactorial(number); System.out.println("Factorial of input " + number + " is " + fact); } catch (Exception e) { System.out.println("Please Enter valid number.."); e.printStackTrace(); } } //find factorial of a number using recursion private static int findFactorial(int number) { //Validation for negative number if(number<0){ throw new RuntimeException("The factorial of a negative number doesn’t exist.try With positive number"); } //base case condition if (number == 1 || number == 0) { return 1; } else { return number * findFactorial(number - 1); } } } |

**I have tested both programs for few inputs as below. You may check for other input as well**

1 2 3 4 5 6 7 8 9 10 11 |
Enter a Number: 4 Factorial of input 4 is 24 Enter a Number: 5 Factorial of input 5 is 12 Enter a Number: 10 Factorial of input 10 is 3628800 |

**Watch it on YouTube:**

That’s all about this topic **Java program to find factorial of a number**

If you have any feedback or suggestion please feel free to drop in blow comment box.