In this Kata, you will implement a function `count` that takes an integer and returns the number of digits in `factorial(n)`. 

For example, `count(5) = 3`, because `5! = 120`, and `120` has `3` digits.  

More examples in the test cases. 

Brute force is not possible. A little research will go a long way, as this is a well known series.

Good luck!

Please also try:

Difficulty: introductory

Starter code:

def count(n):
	

Solutions:
from math import *

def count(n):
    return ceil(lgamma(n+1)/log(10))

from math import log10, floor, pi, e

def count(n):
    if n<0: return 0
    if n<=1: return 1
    x = n*log10(n/e)+log10(2*pi*n)/2
    return floor(x)+1


from math import ceil, log10, pi, e

def count(n):
    return ceil(log10(2*pi*n)/2+n*(log10(n/e)))

from math import floor, log, pi

def count(n):
    return floor( ((n+0.5)*log(n) - n + 0.5*log(2*pi))/log(10) ) + 1

from math import *

def count(n):
    return int(ceil(log10(2 * pi * n) / 2 + n * log10(n / e)))

## https://www.johndcook.com/blog/2015/10/06/number-of-digits-in-n/
from scipy.special import gammaln
from math import log, floor

def count(n):
    return floor( gammaln(n+1)/log(10.0) ) + 1

from math import ceil, log, pi, e
count = lambda n: int(ceil(log(2*pi*n, 10)/2+n*log(n/e, 10)))

import math

def count(n):
    if n == 0 or n <= 1:
        return 1

    x = ((n * math.log10(n / math.e) + math.log10(2 * math.pi * n) / 2))
    
    return math.floor(x) + 1

from math import floor, log10 
  
def count(n):
    n = n+1
    return floor(sum(map(log10, range(2, n)))) +1