import math





def divisor(div, N):

    # 約数

    i = 1

    n = N



    while i <= math.sqrt(n):

        if n % i == 0:

            div.append([i, n // i])

        i += 1





def main():

    N = int(eval(input()))

    div = []

    divisor(div, N)

    print((max(int(math.log10(div[-1][0]) + 1),

              int(math.log10(div[-1][1]) + 1))))

    return





main()

import math





def divisor(div, n):

    # 約数

    ini = 1 if n % 2 else 2

    for i in range(ini, int(math.sqrt(n)) + 1, 2):

        if n % i == 0:

            div.append([i, n // i])





def main():

    N = int(eval(input()))

    div = []

    divisor(div, N)

    print((max(int(math.log10(div[-1][0]) + 1),

              int(math.log10(div[-1][1]) + 1))))

    return





main()

import math


def divisor(div, N):
    # 約数
    i = 1
    n = N
    while i <= math.sqrt(n):
        if n % i == 0:
            div.append([i, n // i])
        i += 1


def main():
    N = int(eval(input()))
    div = []
    divisor(div, N)
    print((max(int(math.log10(div[-1][0]) + 1), int(math.log10(div[-1][1]) + 1))))
    return


main()

import math


def divisor(div, n):
    # 約数
    ini = 1 if n % 2 else 2
    for i in range(ini, int(math.sqrt(n)) + 1, 2):
        if n % i == 0:
            div.append([i, n // i])


def main():
    N = int(eval(input()))
    div = []
    divisor(div, N)
    print((max(int(math.log10(div[-1][0]) + 1), int(math.log10(div[-1][1]) + 1))))
    return


main()

-def divisor(div, N): +def divisor(div, n): -    i = 1 -    n = N -    while i <= math.sqrt(n): +    ini = 1 if n % 2 else 2 +    for i in range(ini, int(math.sqrt(n)) + 1, 2): -        i += 1