# Print factorials of a range in right aligned format

• Last Updated : 22 Feb, 2023

Given two numbers m and n, the task is to find factorial of all numbers including m and n, and then print below format.
Examples:

Input : 6 10
Output :
720
5040
40320
362880
3628800

Input : 10 20
Output :
3628800
39916800
479001600
6227020800
87178291200
1307674368000
20922789888000
355687428096000
6402373705728000
121645100408832000
2432902008176640000

We used the boost multiprecision library for store the factorial of large number and print the factorial with the setw() function.
setw(int) -> setw(int) is a function is used for intention in the result.

## C++

 // CPP Program to print format of factorial#include #include #include using namespace std;using boost::multiprecision::cpp_int; vector find_factorial(int num1, int num2){    // vector for store the result    vector vec;     // variable for store the    // each number factorial    cpp_int fac = 1;     // copy of first number    int temp = num1;     // found first number factorial    while (1) {        if (temp == 1)            break;        fac *= temp;        temp--;    }         // push the first number in result vector    vec.push_back(fac);     // increment the first number    num1++;     // found the all remaining number    // factorial loop is working until    // all required number factorial founded    while (num1 <= num2) {        fac *= num1;         // store the result of factorial        vec.push_back(fac);         // increment the first number        num1++;    }         // return the result    return (vec);} // function for print the resultvoid print_format(vector& result){    // setw() is used for fill the blank    // right is used for right justification of data    int digits = result.back().str().size();         for (int i = 0; i < result.size(); i++) {         cout <<  setw(digits + 1) <<                     right << result[i] <<  endl;    }} // Driver functionint main(){         // number which found the factorial    // of between range    int m = 10, n = 20;     // store the result of factorial    vector result_fac;     // function for found factorial    result_fac = find_factorial(m, n);     // function for print format    print_format(result_fac);     return 0;}

## Java

 // Java Program to print// format of factorialimport java.util.*; class GFG {  static ArrayList find_factorial(int num1,                                        int num2)  {    // vector for store    // the result    ArrayList vec = new ArrayList();     // variable for store the    // each number factorial    long fac = 1;     // copy of first number    long temp = num1;     // found first    // number factorial    while (true) {      if (temp == 1)        break;      fac *= temp;      temp--;    }     // push the first number    // in result vector    vec.add(fac);     // increment the    // first number    num1++;     // found the all remaining    // number factorial loop    // is working until all    // required number    // factorial founded    while (num1 <= num2) {      fac *= num1;       // store the result      // of factorial      vec.add(fac);       // increment      // the first number      num1++;    }     // return the result    return (vec);  }   // function for  // print the result  static void print_format(ArrayList result)  {    // setw() is used for fill    // the blank right is used    // for right justification    // of data    int x = result.size();    int digits  = String.valueOf(result.get(x - 1)).length();     for (int i = 0; i < x; i++) {      System.out.println(String.format(        "%1\$" + (digits + 1) + "s", result.get(i)));    }  }   // Driver Code   public static void main(String[] args)  {    // number which found    // the factorial    // of between range    int m = 10;    int n = 20;     // store the result    // of factorial    // using    // function for    // found factorial    var result_fac = find_factorial(m, n);     // function for    // print format    print_format(result_fac);  }} // This code is contributed// by phasing17

## Python

 # Python Program to print# format of factorialdef find_factorial(num1, num2):     # vector for store    # the result    vec = []     # variable for store the    # each number factorial    fac = 1     # copy of first number    temp = num1     # found first    # number factorial    while (1):        if (temp == 1):            break        fac *= temp        temp = temp - 1     # push the first number    # in result vector    vec.append(fac)     # increment the    # first number    num1 = num1 + 1     # found the all remaining    # number factorial loop    # is working until all    # required number    # factorial founded    while (num1 <= num2):        fac *= num1         # store the result        # of factorial        vec.append(fac)         # increment        # the first number        num1 = num1 + 1     # return the result    return (vec)  # function for# print the resultdef print_format(result):     # setw() is used for fill    # the blank right is used    # for right justification    # of data    x = len(result)     digits = len(str(result[x-1]))     for i in range(x):        # Creating a temp string of        # empty spaces, to right        # align them.        tmp = ""        for j in range(x-i):            tmp = tmp + ' '         result[i] = tmp + str(result[i])        print(str(result[i]))  # Driver Code # number which found# the factorial# of between rangem = 10n = 20 # function for# found factorialresult_fac = find_factorial(m, n) # function for# print formatprint_format(result_fac) # The code is contributed by Gautam goel (gautamgoel962)

## C#

 // C# Program to print// format of factorial using System;using System.Collections.Generic; class GFG{    static List find_factorial(int num1, int num2)    {        // vector for store        // the result        List vec = new List();         // variable for store the        // each number factorial        long fac = 1;             // copy of first number        long temp = num1;             // found first        // number factorial        while (true)        {            if (temp == 1)                break;            fac *= temp;            temp--;        }                 // push the first number        // in result vector        vec.Add(fac);             // increment the        // first number        num1++;             // found the all remaining        // number factorial loop        // is working until all        // required number        // factorial founded        while (num1 <= num2)        {            fac *= num1;                 // store the result            // of factorial            vec.Add(fac);                 // increment            // the first number            num1++;        }                 // return the result        return (vec);    }         // function for    // print the result    static void print_format(List result)    {        // setw() is used for fill        // the blank right is used        // for right justification        // of data        int x = result.Count;        int digits = Convert.ToString(result[x - 1]).Length;                 for (int i = 0; i < x; i++)        {        Console.WriteLine(Convert.ToString(result[i]).PadLeft(digits + 1));        }    }         // Driver Code         public static void Main(string[] args)    {        // number which found        // the factorial        // of between range        int m = 10;        int n = 20;                 // store the result        // of factorial        // using        // function for        // found factorial        var result_fac = find_factorial(m, n);                 // function for        // print format        print_format(result_fac);    }} // This code is contributed// by phasing17



## Javascript



Output:

3628800
39916800
479001600
6227020800
87178291200
1307674368000
20922789888000
355687428096000
6402373705728000
121645100408832000
2432902008176640000

Time complexity : O(n)

Space complexity : O(n)

My Personal Notes arrow_drop_up