# Check if a given number is factorial of any number

Last Updated : 10 Jul, 2023

Given a number n, the task is to determine whether n can be a factorial of some number x
Examples:

Input: N = 24
Output: Yes
Explanation: 4! = 24

Input: N = 25
Output: No

Recommended Practice

Approach:

For a number to be a factorial of any number it must be divisible by all the numbers from 1 to that number. So in this approach

We keep on dividing the number if it is completely divisible till it is no longer divisible.

Then we check the final number of n, if it is 1 we return true else we return false.

Below is the implementation of the above approach:

## C++

 `// C++ implementation for ` `// the above approach` `#include ` `using` `namespace` `std;`   `// Function to check if ` `// the given number is a ` `// factorial of any number` `bool` `isFactorial(``int` `n)` `{` `  ``for` `(``int` `i = 1;; i++) {` `    ``if` `(n % i == 0) {` `      ``n /= i;` `    ``}` `    ``else` `{` `      ``break``;` `    ``}` `  ``}`   `  ``if` `(n == 1) {` `    ``return` `true``;` `  ``}` `  ``else` `{` `    ``return` `false``;` `  ``}` `}`   `// Driver Code` `int` `main()` `{` `  ``int` `n = 24;`   `  ``bool` `ans = isFactorial(n);` `  ``if` `(ans == 1) {` `    ``cout << ``"Yes\n"``;` `  ``}` `  ``else` `{` `    ``cout << ``"No\n"``;` `  ``}`   `  ``return` `0;` `}`

## Java

 `// Java implementation for the above approach ` `class` `GFG` `{`   `    ``// Function to check if the given number ` `    ``// is a factorial of any number ` `    ``static` `boolean` `isFactorial(``int` `n) ` `    ``{ ` `        ``for` `(``int` `i = ``1``;; i++) ` `        ``{ ` `            ``if` `(n % i == ``0``) ` `            ``{ ` `                ``n /= i; ` `            ``} ` `            ``else` `            ``{ ` `                ``break``; ` `            ``} ` `        ``} ` `    `  `        ``if` `(n == ``1``) ` `        ``{ ` `            ``return` `true``; ` `        ``} ` `        ``else` `        ``{ ` `            ``return` `false``; ` `        ``} ` `    ``} ` `    `  `    ``// Driver Code ` `    ``public` `static` `void` `main (String[] args) ` `    ``{ ` `        ``int` `n = ``24``; ` `        ``boolean` `ans = isFactorial(n); ` `        `  `        ``if` `(ans == ``true``) ` `        ``{ ` `            ``System.out.println(``"Yes"``); ` `        ``} ` `        ``else` `        ``{ ` `            ``System.out.println(``"No"``); ` `        ``} ` `    ``} ` `}`   `// This code is contributed by AnkitRai01`

## Python3

 `# Python3 implementation of the approach `   `# Function to check if ` `# the given number is a ` `# factorial of any number ` `def` `isFactorial(n) :` `    ``i ``=` `1` `    ``while``(``True``) :` `        `  `        ``if` `(n ``%` `i ``=``=` `0``) :` `            ``n ``/``/``=` `i` `            `  `        ``else` `:` `            ``break` `            `  `        ``i ``+``=` `1`   `    ``if` `(n ``=``=` `1``) :` `        ``return` `True` `    `  `    ``else` `:` `        ``return` `False`   `# Driver Code ` `if` `__name__ ``=``=` `"__main__"` `: ` `    ``n ``=` `24` `    ``ans ``=` `isFactorial(n)` `    `  `    ``if` `(ans ``=``=` `1``) :` `        ``print``(``"Yes"``) `   `    ``else` `:` `        ``print``(``"No"``)`   `# This code is contributed by kanugargng`

## C#

 `// C# implementation for the above approach` `using` `System;` `    `  `class` `GFG` `{`   `    ``// Function to check if the given number ` `    ``// is a factorial of any number ` `    ``static` `Boolean isFactorial(``int` `n) ` `    ``{ ` `        ``for` `(``int` `i = 1;; i++) ` `        ``{ ` `            ``if` `(n % i == 0) ` `            ``{ ` `                ``n /= i; ` `            ``} ` `            ``else` `            ``{ ` `                ``break``; ` `            ``} ` `        ``} ` `    `  `        ``if` `(n == 1) ` `        ``{ ` `            ``return` `true``; ` `        ``} ` `        ``else` `        ``{ ` `            ``return` `false``; ` `        ``} ` `    ``} ` `    `  `    ``// Driver Code ` `    ``public` `static` `void` `Main (String[] args) ` `    ``{ ` `        ``int` `n = 24; ` `        ``Boolean ans = isFactorial(n); ` `        `  `        ``if` `(ans == ``true``) ` `        ``{ ` `            ``Console.WriteLine(``"Yes"``); ` `        ``} ` `        ``else` `        ``{ ` `            ``Console.WriteLine(``"No"``); ` `        ``} ` `    ``} ` `}`   `// This code is contributed by 29AjayKumar`

## Javascript

 ``

## C

 `// C implementation for ` `// the above approach` `#include ` `#include `   `// Function to check if ` `// the given number is a ` `// factorial of any number` `bool` `isFactorial(``int` `n)` `{` `  ``for` `(``int` `i = 1;; i++) {` `    ``if` `(n % i == 0) {` `      ``n /= i;` `    ``}` `    ``else` `{` `      ``break``;` `    ``}` `  ``}` ` `  `  ``if` `(n == 1) {` `    ``return` `true``;` `  ``}` `  ``else` `{` `    ``return` `false``;` `  ``}` `}`   `// Driver code` `int` `main()` `{` `    ``int` `n = 24;` ` `  `  ``bool` `ans = isFactorial(n);` `  ``if` `(ans == 1) {` `    ``printf``(``"Yes\n"``);` `  ``}` `  ``else` `{` `    ``printf``(``"No\n"``);` `  ``}` `}`   `// This code is contributed by allwink45.`

Output

```Yes
```

Time Complexity: O(log10n)
Auxiliary Space: O(1)

Previous
Next