/*
　　　　　　 ＿＿
　　　　　／＞　　 フ
　　　　　|   _　 _l  
　 　　　／` ミ＿x ノ   Zzz..
　　 　 /　 　 　 |   コード見ちゃだめ！！
　　　 /　 ヽ　　  ﾉ   
　 　 │　　|　|  |   
　／￣|　　 |　|  |
　| (￣ヽ＿_ヽ_)_ _)
　＼二つ
*/

import java.util.*;

public class Main{
    public static void main(String[]args){
        Scanner sc=new Scanner(System.in);
        long n=sc.nextLong();
        
        long min=1000000000;
        for(long i=1;i*i<=n;i++){
            if(n%i==0){
                long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length());
                min=Math.min(min,now);
            }
        }
        System.out.println(min);
    }
} import java.util.*; util.* java public class Main{
    public static void main(String[]args){
        Scanner sc=new Scanner(System.in);
        long n=sc.nextLong();
        
        long min=1000000000;
        for(long i=1;i*i<=n;i++){
            if(n%i==0){
                long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length());
                min=Math.min(min,now);
            }
        }
        System.out.println(min);
    }
} Main public static void main(String[]args){
        Scanner sc=new Scanner(System.in);
        long n=sc.nextLong();
        
        long min=1000000000;
        for(long i=1;i*i<=n;i++){
            if(n%i==0){
                long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length());
                min=Math.min(min,now);
            }
        }
        System.out.println(min);
    } main {
        Scanner sc=new Scanner(System.in);
        long n=sc.nextLong();
        
        long min=1000000000;
        for(long i=1;i*i<=n;i++){
            if(n%i==0){
                long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length());
                min=Math.min(min,now);
            }
        }
        System.out.println(min);
    } Scanner sc=new Scanner(System.in); sc new Scanner(System.in) long n=sc.nextLong(); n sc.nextLong() sc.nextLong sc long min=1000000000; min 1000000000 for(long i=1;i*i<=n;i++){
            if(n%i==0){
                long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length());
                min=Math.min(min,now);
            }
        } long i=1; long i=1; i 1 i*i<=n i*i i i n i++ i++ i {
            if(n%i==0){
                long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length());
                min=Math.min(min,now);
            }
        } {
            if(n%i==0){
                long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length());
                min=Math.min(min,now);
            }
        } if(n%i==0){
                long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length());
                min=Math.min(min,now);
            } n%i==0 n%i n i 0 {
                long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length());
                min=Math.min(min,now);
            } long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length()); now Math.max(String.valueOf(i).length(),String.valueOf(n/i).length()) Math.max Math String.valueOf(i).length() String.valueOf(i).length String.valueOf(i) String.valueOf String i String.valueOf(n/i).length() String.valueOf(n/i).length String.valueOf(n/i) String.valueOf String n/i n i min=Math.min(min,now) min Math.min(min,now) Math.min Math min now System.out.println(min) System.out.println System.out System System.out min String[]args args public class Main{
    public static void main(String[]args){
        Scanner sc=new Scanner(System.in);
        long n=sc.nextLong();
        
        long min=1000000000;
        for(long i=1;i*i<=n;i++){
            if(n%i==0){
                long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length());
                min=Math.min(min,now);
            }
        }
        System.out.println(min);
    }
} public class Main{
    public static void main(String[]args){
        Scanner sc=new Scanner(System.in);
        long n=sc.nextLong();
        
        long min=1000000000;
        for(long i=1;i*i<=n;i++){
            if(n%i==0){
                long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length());
                min=Math.min(min,now);
            }
        }
        System.out.println(min);
    }
} Main
/*
　　　　　　 ＿＿
　　　　　／＞　　 フ
　　　　　|   _　 _l  
　 　　　／` ミ＿x ノ   Zzz..
　　 　 /　 　 　 |   コード見ちゃだめ！！
　　　 /　 ヽ　　  ﾉ   
　 　 │　　|　|  |   
　／￣|　　 |　|  |
　| (￣ヽ＿_ヽ_)_ _)
　＼二つ
*/

import java.util.*;

public class Main{
    public static void main(String[]args){
        Scanner sc=new Scanner(System.in);
        long n=sc.nextLong();
        
        long min=1000000000;
        for(long i=1;i*i<=n;i++){
            if(n%i==0){
                long now=Math.max(String.valueOf(i).length(),String.valueOf(n/i).length());
                min=Math.min(min,now);
            }
        }
        System.out.println(min);
    }
}