Java Program to Find Factorial of a Number

This article covers a program in Java that find and prints the factorial of a number. The factorial of a number n is calculated as n * (n-1) * (n-2) * ... * 1. For example, factorial of 5 is 5*4*3*2*1 or 120.

Find Factorial in Java using for Loop

The question is, write a Java program to find factorial of a number. The number must be received by user at run-time of the program. The answer to this question, is the program given below:

import java.util.Scanner;

public class fresherearth
{
   public static void main(String[] args)
   {
      int num, i, fact=1;
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter a Number: ");
      num = s.nextInt();
      
      for(i=num; i>=1; i--)
      {
         fact = fact*i;
      }
      
      System.out.println("\nFactorial Result = " +fact);
   }
}

The sample run of above Java program with user input 5 is shown in the snapshot given below:

Java Program find factorial of number

The above program can also be created in this way:

import java.util.Scanner;

public class fresherearth
{
   public static void main(String[] args)
   {
      int fact=1;
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter a Number: ");
      int num = s.nextInt();
      
      for(int i=num; i>=1; i--)
         fact = fact*i;
      
      System.out.println("\nFactorial of " +num+ " is " +fact);
   }
}

Here is its sample run with same user input as of previous program's sample run:

java find factorial of a number

Find Factorial in Java using while Loop

This program does the same job as of previous, but created using while loop, instead of for

import java.util.Scanner;

public class fresherearth
{
   public static void main(String[] args)
   {
      int fact=1;
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter a Number: ");
      int num = s.nextInt();
      
      int i = num;
      while(i>=1)
      {
         fact = fact*i;
         i--;
      }
      
      System.out.println("\nFactorial of " +num+ " is " +fact);
   }
}

The above program produces same output as of previous program. In above program, the following two statements:

fact = fact*i;
i--;

can also be replaced with a single statement given below:

fact = fact*i--;

In above statement, the i-- means the current value of i gets used and then incremented, because of a post increment (--) operator used.

Find Factorial in Java using Function

This program is created using a user-defined function named factorial() that takes an argument and returns the factorial result of its argument.

import java.util.Scanner;

public class fresherearth
{
   public static void main(String[] args)
   {
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter a Number: ");
      int num = s.nextInt();
      
      System.out.println("\nFactorial of " +num+ " is " +factorial(num));
   }
   
   public static int factorial(int n)
   {
      int fact = 1;
      for(int i=n; i>=1; i--)
         fact = fact*i;
      return fact;
   }
}

Find Factorial in Java using Recursion

Here is another Java program, I've created, to find factorial of a number using recursion, or recursive function. A recursive function is a function, where the function calls itself from inside its definition.

import java.util.Scanner;

public class fresherearth
{
   public static void main(String[] args)
   {
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter a Number: ");
      int num = s.nextInt();
      
      System.out.println("\nFactorial of " +num+ " is " +factorial(num));
   }
   
   public static int factorial(int n)
   {
      if(n>=1)
         return (n * factorial(n-1));
      else
         return 1;
   }
}

Again the output produced by this Java program is same as of previous program.

Same Program in Other Languages

Java Online Test


« Previous Program Next Program »