def sol(n):

  ans = float('inf')

  for i in range(1, int(n**0.5)+1):

    if n % i == 0:

      ans = min(ans, max(len(str(i)),len(str(n//i))))

            

  return ans



print((sol(int(eval(input())))))

N = int(eval(input()))

ans = len(str(N))

for a in range(1, int(N ** .5) + 1):

    if N % a == 0:

        ans = min(ans, max(len(str(a)), len(str(N // a))))

print(ans)
def sol(n):
    ans = float("inf")
    for i in range(1, int(n**0.5) + 1):
        if n % i == 0:
            ans = min(ans, max(len(str(i)), len(str(n // i))))
    return ans


print((sol(int(eval(input())))))

N = int(eval(input()))
ans = len(str(N))
for a in range(1, int(N**0.5) + 1):
    if N % a == 0:
        ans = min(ans, max(len(str(a)), len(str(N // a))))
print(ans)

-def sol(n): -    ans = float("inf") -    for i in range(1, int(n**0.5) + 1): -        if n % i == 0: -            ans = min(ans, max(len(str(i)), len(str(n // i)))) -    return ans - - -print((sol(int(eval(input()))))) +N = int(eval(input())) +ans = len(str(N)) +for a in range(1, int(N**0.5) + 1): +    if N % a == 0: +        ans = min(ans, max(len(str(a)), len(str(N // a)))) +print(ans)