Wednesday, November 20, 2024
Google search engine
HomeData Modelling & AIFind the total Number of Digits in (N!)N

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

Given a number N. The task is to find the total number of Digits in (N!)^{N}      .

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, which gives the number of digits present in that number. That is, the number of digits in a number say N will be floor(log10N) + 1. Therefore, the number of digits in (N!)^{N}      will be: 

floor(log((N!)^{N}))+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 <bits/stdc++.h>
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




<?php
// PHP program to find the total
// Number of Digits in (N!)^N
 
// Function to find the total
// Number of Digits in (N!)^N
function CountDigits($n)
{
    if ($n == 1)
        return 1;
 
    $sum = 0;
 
    // Finding X
    for ($i = 2; $i <= $n; ++$i)
    {
        $sum += log($i) / log(10);
    }
 
    // Calculating N*X
    $sum *= $n;
 
    // Floor(N*X) + 1
    return ceil($sum); // equivalent to floor(sum) + 1
}
 
// Driver code
$N = 5;
echo CountDigits($N);
 
// This code is contributed by ajit
?>


Javascript




<script>
// javascript program to find the total
// Number of Digits in (N!)^N    
// Function to find the total
    // Number of Digits in (N!)^N
    function CountDigits(n) {
        if (n == 1)
            return 1;
 
        var sum = 0;
 
        // Finding X
        for (i = 2; i <= n; ++i) {
            sum += (Math.log(i) /  Math.log(10));
        }
 
        // Calculating N*X
        sum *= n;
 
        // Floor(N*X) + 1
        // equivalent to floor(sum) + 1
        return Math.ceil(sum);
    }
 
    // Driver code
     
        var N = 5;
        document.write(CountDigits(N));
 
// This code contributed by aashish1995
</script>


Output: 

11

 

Time Complexity: O(n) // n is the length of the array.

Auxiliary Space: O(1)

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Recent Comments