import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		// 整数の入力
		long N = sc.nextLong();
		int sqrtn = (int) Math.sqrt(N);
		long a = 0;

		for (long i = 1; i <= sqrtn;) {
			if (N % i == 0) {
				a = N / i;
			}
			i++;
		}

		long b = N / a;
		long ans = Math.max(a, b);
		int len = String.valueOf(ans).length();

		// 出力
		System.out.println(len);
	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		// 整数の入力
		long N = sc.nextLong();
		int sqrtn = (int) Math.sqrt(N);
		long a = 0;

		for (long i = 1; i <= sqrtn;) {
			if (N % i == 0) {
				a = N / i;
			}
			i++;
		}

		long b = N / a;
		long ans = Math.max(a, b);
		int len = String.valueOf(ans).length();

		// 出力
		System.out.println(len);
	}
} Main public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		// 整数の入力
		long N = sc.nextLong();
		int sqrtn = (int) Math.sqrt(N);
		long a = 0;

		for (long i = 1; i <= sqrtn;) {
			if (N % i == 0) {
				a = N / i;
			}
			i++;
		}

		long b = N / a;
		long ans = Math.max(a, b);
		int len = String.valueOf(ans).length();

		// 出力
		System.out.println(len);
	} main {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		// 整数の入力
		long N = sc.nextLong();
		int sqrtn = (int) Math.sqrt(N);
		long a = 0;

		for (long i = 1; i <= sqrtn;) {
			if (N % i == 0) {
				a = N / i;
			}
			i++;
		}

		long b = N / a;
		long ans = Math.max(a, b);
		int len = String.valueOf(ans).length();

		// 出力
		System.out.println(len);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) long N = sc.nextLong(); N sc.nextLong() sc.nextLong sc int sqrtn = (int) Math.sqrt(N); sqrtn (int) Math.sqrt(N) Math.sqrt Math N long a = 0; a 0 for (long i = 1; i <= sqrtn;) {
			if (N % i == 0) {
				a = N / i;
			}
			i++;
		} long i = 1; long i = 1; i 1 i <= sqrtn i sqrtn {
			if (N % i == 0) {
				a = N / i;
			}
			i++;
		} {
			if (N % i == 0) {
				a = N / i;
			}
			i++;
		} if (N % i == 0) {
				a = N / i;
			} N % i == 0 N % i N i 0 {
				a = N / i;
			} a = N / i a N / i N i i++ i long b = N / a; b N / a N a long ans = Math.max(a, b); ans Math.max(a, b) Math.max Math a b int len = String.valueOf(ans).length(); len String.valueOf(ans).length() String.valueOf(ans).length String.valueOf(ans) String.valueOf String ans System.out.println(len) System.out.println System.out System System.out len String[] args args public class Main {
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		// 整数の入力
		long N = sc.nextLong();
		int sqrtn = (int) Math.sqrt(N);
		long a = 0;

		for (long i = 1; i <= sqrtn;) {
			if (N % i == 0) {
				a = N / i;
			}
			i++;
		}

		long b = N / a;
		long ans = Math.max(a, b);
		int len = String.valueOf(ans).length();

		// 出力
		System.out.println(len);
	}
} public class Main {
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		// 整数の入力
		long N = sc.nextLong();
		int sqrtn = (int) Math.sqrt(N);
		long a = 0;

		for (long i = 1; i <= sqrtn;) {
			if (N % i == 0) {
				a = N / i;
			}
			i++;
		}

		long b = N / a;
		long ans = Math.max(a, b);
		int len = String.valueOf(ans).length();

		// 出力
		System.out.println(len);
	}
} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		// 整数の入力
		long N = sc.nextLong();
		int sqrtn = (int) Math.sqrt(N);
		long a = 0;

		for (long i = 1; i <= sqrtn;) {
			if (N % i == 0) {
				a = N / i;
			}
			i++;
		}

		long b = N / a;
		long ans = Math.max(a, b);
		int len = String.valueOf(ans).length();

		// 出力
		System.out.println(len);
	}
}
