N = int(eval(input()))



def divisor(n):

    cd = []

    i = 1

    while i*i <= n:

        if n%i==0:

            cd.append(i)

            if i != n//i:

                cd.append(n//i)

        i+=1

    return cd



cd = divisor(N)

ans = len(str(cd[-1]))

print(ans)





def solve():

    N = int(eval(input()))

    n = int(N**0.5)+1

    for i in range(n,0,-1):

        if N%i==0:

            ans = len(str(N//i))

            break

    return ans

print((solve()))

N = int(eval(input()))


def divisor(n):
    cd = []
    i = 1
    while i * i <= n:
        if n % i == 0:
            cd.append(i)
            if i != n // i:
                cd.append(n // i)
        i += 1
    return cd


cd = divisor(N)
ans = len(str(cd[-1]))
print(ans)

def solve():
    N = int(eval(input()))
    n = int(N**0.5) + 1
    for i in range(n, 0, -1):
        if N % i == 0:
            ans = len(str(N // i))
            break
    return ans


print((solve()))

-N = int(eval(input())) +def solve(): +    N = int(eval(input())) +    n = int(N**0.5) + 1 +    for i in range(n, 0, -1): +        if N % i == 0: +            ans = len(str(N // i)) +            break +    return ans -def divisor(n): -    cd = [] -    i = 1 -    while i * i <= n: -        if n % i == 0: -            cd.append(i) -            if i != n // i: -                cd.append(n // i) -        i += 1 -    return cd - - -cd = divisor(N) -ans = len(str(cd[-1])) -print(ans) +print((solve()))