Related Articles
Find all factorial numbers less than or equal to n
• Difficulty Level : Easy
• Last Updated : 15 Mar, 2021

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(n)
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 contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.