import java.io.PrintWriter;
import java.util.Scanner;

/**
 * Created by mixnector on 2017/03/04.
 */
public class Main {
    static Scanner in;
    static PrintWriter out;
    static String INPUT = "";

    public static void main(String[] args) throws Exception
    {
        in = INPUT.isEmpty() ? new Scanner(System.in) : new Scanner(INPUT);
        out = new PrintWriter(System.out);
        long N = nl();

        int halfN = (int)Math.sqrt(N);

        int min = 10;
        int A;
        long B;
        for(A = 1; A <= halfN; A++)
        {
            if(N % A == 0)
            {
                B = N / A;
                int F = (int)Math.log10(B) + 1;
                if(min > F)
                    min = F;
            }
        }

        out.println(min);
        out.flush();
    }

    static long nl() {
        return Long.parseLong(in.next());
    }
} import java.io.PrintWriter; PrintWriter java.io import java.util.Scanner; Scanner java.util public class Main {
    static Scanner in;
    static PrintWriter out;
    static String INPUT = "";

    public static void main(String[] args) throws Exception
    {
        in = INPUT.isEmpty() ? new Scanner(System.in) : new Scanner(INPUT);
        out = new PrintWriter(System.out);
        long N = nl();

        int halfN = (int)Math.sqrt(N);

        int min = 10;
        int A;
        long B;
        for(A = 1; A <= halfN; A++)
        {
            if(N % A == 0)
            {
                B = N / A;
                int F = (int)Math.log10(B) + 1;
                if(min > F)
                    min = F;
            }
        }

        out.println(min);
        out.flush();
    }

    static long nl() {
        return Long.parseLong(in.next());
    }
} Main static Scanner in; in static PrintWriter out; out static String INPUT = ""; INPUT "" public static void main(String[] args) throws Exception
    {
        in = INPUT.isEmpty() ? new Scanner(System.in) : new Scanner(INPUT);
        out = new PrintWriter(System.out);
        long N = nl();

        int halfN = (int)Math.sqrt(N);

        int min = 10;
        int A;
        long B;
        for(A = 1; A <= halfN; A++)
        {
            if(N % A == 0)
            {
                B = N / A;
                int F = (int)Math.log10(B) + 1;
                if(min > F)
                    min = F;
            }
        }

        out.println(min);
        out.flush();
    } main {
        in = INPUT.isEmpty() ? new Scanner(System.in) : new Scanner(INPUT);
        out = new PrintWriter(System.out);
        long N = nl();

        int halfN = (int)Math.sqrt(N);

        int min = 10;
        int A;
        long B;
        for(A = 1; A <= halfN; A++)
        {
            if(N % A == 0)
            {
                B = N / A;
                int F = (int)Math.log10(B) + 1;
                if(min > F)
                    min = F;
            }
        }

        out.println(min);
        out.flush();
    } in = INPUT.isEmpty() ? new Scanner(System.in) : new Scanner(INPUT) in INPUT.isEmpty() ? new Scanner(System.in) : new Scanner(INPUT) INPUT.isEmpty() INPUT.isEmpty INPUT new Scanner(System.in) new Scanner(INPUT) out = new PrintWriter(System.out) out new PrintWriter(System.out) long N = nl(); N nl() nl int halfN = (int)Math.sqrt(N); halfN (int)Math.sqrt(N) Math.sqrt Math N int min = 10; min 10 int A; A long B; B for(A = 1; A <= halfN; A++)
        {
            if(N % A == 0)
            {
                B = N / A;
                int F = (int)Math.log10(B) + 1;
                if(min > F)
                    min = F;
            }
        } A = 1; A = 1 A 1 A <= halfN A halfN A++ A++ A {
            if(N % A == 0)
            {
                B = N / A;
                int F = (int)Math.log10(B) + 1;
                if(min > F)
                    min = F;
            }
        } {
            if(N % A == 0)
            {
                B = N / A;
                int F = (int)Math.log10(B) + 1;
                if(min > F)
                    min = F;
            }
        } if(N % A == 0)
            {
                B = N / A;
                int F = (int)Math.log10(B) + 1;
                if(min > F)
                    min = F;
            } N % A == 0 N % A N A 0 {
                B = N / A;
                int F = (int)Math.log10(B) + 1;
                if(min > F)
                    min = F;
            } B = N / A B N / A N A int F = (int)Math.log10(B) + 1; F (int)Math.log10(B) + 1 (int)Math.log10(B) Math.log10 Math B 1 if(min > F)
                    min = F; min > F min F min = F min F out.println(min) out.println out min out.flush() out.flush out String[] args args static long nl() {
        return Long.parseLong(in.next());
    } nl {
        return Long.parseLong(in.next());
    } return Long.parseLong(in.next()); Long.parseLong(in.next()) Long.parseLong Long in.next() in.next in public class Main {
    static Scanner in;
    static PrintWriter out;
    static String INPUT = "";

    public static void main(String[] args) throws Exception
    {
        in = INPUT.isEmpty() ? new Scanner(System.in) : new Scanner(INPUT);
        out = new PrintWriter(System.out);
        long N = nl();

        int halfN = (int)Math.sqrt(N);

        int min = 10;
        int A;
        long B;
        for(A = 1; A <= halfN; A++)
        {
            if(N % A == 0)
            {
                B = N / A;
                int F = (int)Math.log10(B) + 1;
                if(min > F)
                    min = F;
            }
        }

        out.println(min);
        out.flush();
    }

    static long nl() {
        return Long.parseLong(in.next());
    }
} public class Main {
    static Scanner in;
    static PrintWriter out;
    static String INPUT = "";

    public static void main(String[] args) throws Exception
    {
        in = INPUT.isEmpty() ? new Scanner(System.in) : new Scanner(INPUT);
        out = new PrintWriter(System.out);
        long N = nl();

        int halfN = (int)Math.sqrt(N);

        int min = 10;
        int A;
        long B;
        for(A = 1; A <= halfN; A++)
        {
            if(N % A == 0)
            {
                B = N / A;
                int F = (int)Math.log10(B) + 1;
                if(min > F)
                    min = F;
            }
        }

        out.println(min);
        out.flush();
    }

    static long nl() {
        return Long.parseLong(in.next());
    }
} Main
import java.io.PrintWriter;
import java.util.Scanner;

/**
 * Created by mixnector on 2017/03/04.
 */
public class Main {
    static Scanner in;
    static PrintWriter out;
    static String INPUT = "";

    public static void main(String[] args) throws Exception
    {
        in = INPUT.isEmpty() ? new Scanner(System.in) : new Scanner(INPUT);
        out = new PrintWriter(System.out);
        long N = nl();

        int halfN = (int)Math.sqrt(N);

        int min = 10;
        int A;
        long B;
        for(A = 1; A <= halfN; A++)
        {
            if(N % A == 0)
            {
                B = N / A;
                int F = (int)Math.log10(B) + 1;
                if(min > F)
                    min = F;
            }
        }

        out.println(min);
        out.flush();
    }

    static long nl() {
        return Long.parseLong(in.next());
    }
}