Related Articles

# Find the total Number of Digits in (N!)N

• Last Updated : 30 Apr, 2021

Given a number N. The task is to find the total Number of Digits in .
Examples

```Input: N = 3
Output: 3
If N=3, (3!)3=216,
So the count of digits is 3

Input: N = 4
Output: 6```

Approach:

```As we know,
log(a*b) = log(a) + log(b)

Consider,
X = log(N!) = log(1*2*3....... * N)
= log(1)+log(2)+........ +log(N)```

Now, we know that the floor value of log base 10 increased by 1, of any number, gives the number of digits present in that number. That is, number of digits in a number say N will be floor(log10N) + 1.
Therefore, number of digit in will be:

```floor(log( ))+1
= floor(N*log10(N!)) + 1
= floor(N*X) + 1.```

Below is the implementation of the above approach:

## C++

 `// C++ program to find the total``// Number of Digits in (N!)^N` `#include ``using` `namespace` `std;` `// Function to find the total``// Number of Digits in (N!)^N``int` `CountDigits(``int` `n)``{``    ``if` `(n == 1)``        ``return` `1;` `    ``double` `sum = 0;` `    ``// Finding X``    ``for` `(``int` `i = 2; i <= n; ++i) {``        ``sum += (``double``)``log``(i) / (``double``)``log``(10);``    ``}` `    ``// Calculating N*X``    ``sum *= (``double``)n;` `    ``// Floor(N*X) + 1``    ``return` `ceil``(sum); ``// equivalent to floor(sum) + 1``}` `// Driver code``int` `main()``{``    ``int` `N = 5;` `    ``cout << CountDigits(N);` `    ``return` `0;``}`

## Java

 `// Java program to find the total``// Number of Digits in (N!)^N``import` `java.io.*;``import` `java.util.*;``import` `java.lang.*;` `class` `GFG``{``// Function to find the total``// Number of Digits in (N!)^N``public` `double` `CountDigits(``int` `n)``{``    ``if` `(n == ``1``)``        ``return` `1``;` `    ``double` `sum = ``0``;` `    ``// Finding X``    ``for` `(``int` `i = ``2``; i <= n; ++i)``    ``{``        ``sum += ((``double``)Math.log(i) /``                ``(``double``)Math.log(``10``));``    ``}` `    ``// Calculating N*X``    ``sum *= n;` `    ``// Floor(N*X) + 1``    ``// equivalent to floor(sum) + 1``    ``return` `Math.ceil(sum);``}` `// Driver code``public` `static` `void` `main(String args[])``{``    ``GFG g = ``new` `GFG();``    ``int` `N = ``5``;``    ``System.out.println(g.CountDigits(N));``}``}` `// This code is contributed``// by Akanksha Rai(Abby_akku)`

## Python3

 `# Python3 program to find the total``# Number of Digits in (N!)^N` `import` `math as ma``def` `CountDigits(n):` `    ``if``(n``=``=``1``):``        ``return` `1``    ``sum``=``0` `    ``# Finding X``    ``for` `i ``in` `range``(``2``,n``+``1``):``        ``sum``+``=``ma.log(i,``10``)` `    ``# Calculating N*X``    ``sum``*``=``n` `    ``# Floor(N*X)+1``    ``#equivalent to floor(sum) + 1``    ``return` `ma.ceil(``sum``)` `# Driver code``if` `__name__``=``=``'__main__'``:``    ``N``=``5``    ``print``(CountDigits(N))` `# This code is contributed by``# Indrajit Sinha.`

## C#

 `// C# program to find the total``// Number of Digits in (N!)^N``using` `System;` `class` `GFG``{``// Function to find the total``// Number of Digits in (N!)^N``public` `double` `CountDigits(``int` `n)``{``    ``if` `(n == 1)``        ``return` `1;` `    ``double` `sum = 0;` `    ``// Finding X``    ``for` `(``int` `i = 2; i <= n; ++i)``    ``{``        ``sum += ((``double``)Math.Log(i) /``                ``(``double``)Math.Log(10));``    ``}` `    ``// Calculating N*X``    ``sum *= n;` `    ``// Floor(N*X) + 1``    ``// equivalent to floor(sum) + 1``    ``return` `Math.Ceiling(sum);``}` `// Driver code``public` `static` `void` `Main()``{``    ``GFG g = ``new` `GFG();``    ``int` `N = 5;``    ``Console.WriteLine(g.CountDigits(N));``}``}` `// This code is contributed``// by SoumikMondal`

## PHP

 ``

## Javascript

 ``
Output:
`11`

Attention reader! Don’t stop learning now. Join the First-Step-to-DSA Course for Class 9 to 12 students , specifically designed to introduce data structures and algorithms to the class 9 to 12 students

My Personal Notes arrow_drop_up