 Open in App
Not now

# Find all factorial numbers less than or equal to n

• Difficulty Level : Easy
• Last Updated : 09 Jan, 2023

A number N is called a factorial number if it is the factorial of a positive integer. For example, the first few factorial numbers are
1, 2, 6, 24, 120, …
Given a number n, print all factorial numbers smaller than or equal to n.
Examples :

Input: n = 100
Output: 1 2 6 24

Input: n = 1500
Output: 1 2 6 24 120 720

A simple solution is to generate all factorials one by one until the generated factorial is greater than n.
An efficient solution is to find next factorial using previous factorial.

## C++

 `// CPP program to find all factorial numbers``// smaller than or equal to n.``#include ``using` `namespace` `std;` `void` `printFactorialNums(``int` `n)``{``    ``int` `fact = 1;``    ``int` `x = 2;``    ``while` `(fact <= n) {``        ``cout << fact << ``" "``;` `        ``// Compute next factorial``        ``// using previous``        ``fact = fact * x;` `        ``x++;``    ``}``}` `// Driver code``int` `main()``{``    ``int` `n = 100;``    ``printFactorialNums(n);``    ``return` `0;``}`

## Java

 `// Java program to find all factorial numbers``// smaller than or equal to n.` `class` `GFG``{``    ``static` `void` `printFactorialNums(``int` `n)``    ``{``        ``int` `fact = ``1``;``        ``int` `x = ``2``;``        ``while` `(fact <= n)``        ``{``            ``System.out.print(fact + ``" "``);``    ` `            ``// Compute next factorial``            ``// using previous``            ``fact = fact * x;``    ` `            ``x++;``        ``}``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `n = ``100``;``        ``printFactorialNums(n);``    ``}``}` `// This code is contributed by Anant Agarwal.`

## Python3

 `# Python3 program to find all factorial``# numbers smaller than or equal to n.` `def` `printFactorialNums( n):``    ``fact ``=` `1``    ``x ``=` `2``    ``while` `fact <``=` `n:``        ``print``(fact, end ``=` `" "``)``        ` `        ``# Compute next factorial``        ``# using previous``        ``fact ``=` `fact ``*` `x``        ` `        ``x ``+``=` `1` `# Driver code``n ``=` `100``printFactorialNums(n)` `# This code is contributed by "Abhishek Sharma 44"`

## C#

 `// C# program to find all factorial numbers``// smaller than or equal to n.``using` `System;` `class` `GFG``{``    ``static` `void` `printFactorialNums(``int` `n)``    ``{``        ``int` `fact = 1;``        ``int` `x = 2;``        ``while` `(fact <= n)``        ``{``            ``Console.Write(fact + ``" "``);``    ` `            ``// Compute next factorial``            ``// using previous``            ``fact = fact * x;``    ` `            ``x++;``        ``}``    ``}``    ` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ``int` `n = 100;``        ``printFactorialNums(n);``    ``}``}` `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output

`1 2 6 24 `

Time Complexity: O(x)
Auxiliary Space: O(1)
If there are multiple queries, then we can cache all previously computed factorial numbers to avoid re-computations.
This article is contributed by Shubham Sagar. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.