
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		new Main().solve();
	}
	
	long N;
	
	void solve(){
		Scanner sc=new Scanner(System.in);
		N=sc.nextLong();
		long min=Long.MAX_VALUE/2;
		for(int i=1;i<=Math.sqrt(N);i++){
			if(N%i==0){
				long digit=Math.max(i, N/i);
				min=Math.min(min, digit);
			}
		}
		String s=String.format("%d", min);
		System.out.println(s.length());
	}
} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		new Main().solve();
	}
	
	long N;
	
	void solve(){
		Scanner sc=new Scanner(System.in);
		N=sc.nextLong();
		long min=Long.MAX_VALUE/2;
		for(int i=1;i<=Math.sqrt(N);i++){
			if(N%i==0){
				long digit=Math.max(i, N/i);
				min=Math.min(min, digit);
			}
		}
		String s=String.format("%d", min);
		System.out.println(s.length());
	}
} Main long N; N public static void main(String[] args) {
		new Main().solve();
	} main {
		new Main().solve();
	} new Main().solve() new Main().solve new Main() String[] args args void solve(){
		Scanner sc=new Scanner(System.in);
		N=sc.nextLong();
		long min=Long.MAX_VALUE/2;
		for(int i=1;i<=Math.sqrt(N);i++){
			if(N%i==0){
				long digit=Math.max(i, N/i);
				min=Math.min(min, digit);
			}
		}
		String s=String.format("%d", min);
		System.out.println(s.length());
	} solve {
		Scanner sc=new Scanner(System.in);
		N=sc.nextLong();
		long min=Long.MAX_VALUE/2;
		for(int i=1;i<=Math.sqrt(N);i++){
			if(N%i==0){
				long digit=Math.max(i, N/i);
				min=Math.min(min, digit);
			}
		}
		String s=String.format("%d", min);
		System.out.println(s.length());
	} Scanner sc=new Scanner(System.in); sc new Scanner(System.in) N=sc.nextLong() N sc.nextLong() sc.nextLong sc long min=Long.MAX_VALUE/2; min Long.MAX_VALUE/2 Long.MAX_VALUE Long Long.MAX_VALUE 2 for(int i=1;i<=Math.sqrt(N);i++){
			if(N%i==0){
				long digit=Math.max(i, N/i);
				min=Math.min(min, digit);
			}
		} int i=1; int i=1; i 1 i<=Math.sqrt(N) i Math.sqrt(N) Math.sqrt Math N i++ i++ i {
			if(N%i==0){
				long digit=Math.max(i, N/i);
				min=Math.min(min, digit);
			}
		} {
			if(N%i==0){
				long digit=Math.max(i, N/i);
				min=Math.min(min, digit);
			}
		} if(N%i==0){
				long digit=Math.max(i, N/i);
				min=Math.min(min, digit);
			} N%i==0 N%i N i 0 {
				long digit=Math.max(i, N/i);
				min=Math.min(min, digit);
			} long digit=Math.max(i, N/i); digit Math.max(i, N/i) Math.max Math i N/i N i min=Math.min(min, digit) min Math.min(min, digit) Math.min Math min digit String s=String.format("%d", min); s String.format("%d", min) String.format String "%d" min System.out.println(s.length()) System.out.println System.out System System.out s.length() s.length s public class Main {

	public static void main(String[] args) {
		new Main().solve();
	}
	
	long N;
	
	void solve(){
		Scanner sc=new Scanner(System.in);
		N=sc.nextLong();
		long min=Long.MAX_VALUE/2;
		for(int i=1;i<=Math.sqrt(N);i++){
			if(N%i==0){
				long digit=Math.max(i, N/i);
				min=Math.min(min, digit);
			}
		}
		String s=String.format("%d", min);
		System.out.println(s.length());
	}
} public class Main {

	public static void main(String[] args) {
		new Main().solve();
	}
	
	long N;
	
	void solve(){
		Scanner sc=new Scanner(System.in);
		N=sc.nextLong();
		long min=Long.MAX_VALUE/2;
		for(int i=1;i<=Math.sqrt(N);i++){
			if(N%i==0){
				long digit=Math.max(i, N/i);
				min=Math.min(min, digit);
			}
		}
		String s=String.format("%d", min);
		System.out.println(s.length());
	}
} Main

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		new Main().solve();
	}
	
	long N;
	
	void solve(){
		Scanner sc=new Scanner(System.in);
		N=sc.nextLong();
		long min=Long.MAX_VALUE/2;
		for(int i=1;i<=Math.sqrt(N);i++){
			if(N%i==0){
				long digit=Math.max(i, N/i);
				min=Math.min(min, digit);
			}
		}
		String s=String.format("%d", min);
		System.out.println(s.length());
	}
}