n=int(eval(input()));ans=10

for i in range(min(10**5,n)):

  if n%(i+1)==0:ans=min(ans,max(len(str(i+1)),len(str(n//(i+1)))))

print(ans)
n=int(eval(input()))

ans=inf=float('inf')

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

  if n%i:continue

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

print(ans)
n = int(eval(input()))
ans = 10
for i in range(min(10**5, n)):
    if n % (i + 1) == 0:
        ans = min(ans, max(len(str(i + 1)), len(str(n // (i + 1)))))
print(ans)

n = int(eval(input()))
ans = inf = float("inf")
for i in range(1, int(n**0.5) + 1):
    if n % i:
        continue
    ans = max(len(str(n % i)), len(str(n // i)))
print(ans)

-ans = 10 -for i in range(min(10**5, n)): -    if n % (i + 1) == 0: -        ans = min(ans, max(len(str(i + 1)), len(str(n // (i + 1))))) +ans = inf = float("inf") +for i in range(1, int(n**0.5) + 1): +    if n % i: +        continue +    ans = max(len(str(n % i)), len(str(n // i)))