import java.util.Scanner;

public class Main {
	public static void main(String[] args) {

//		run();

		Scanner scanner=new Scanner(System.in);

		long n=scanner.nextLong();

		int a=(int)Math.sqrt(n);//切り捨て。

		int b=0;

		for(int i=a; i > 0;i--) {

			if(n%i==0) {
				a=i;
				b=(int)(n/a);
				break;
			}

		}

		int result=Math.max(String.valueOf(a).length(), String.valueOf(b).length());

		System.out.println(result);

		scanner.close();

	}

//	public static void run() {
//
//		for(int i=0;i<100000;i++) {
//			System.out.println("n= "+i+"sqrt(n)= "+Math.sqrt(i)+"(int) "+(int)Math.sqrt(i));
//		}
//	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {

//		run();

		Scanner scanner=new Scanner(System.in);

		long n=scanner.nextLong();

		int a=(int)Math.sqrt(n);//切り捨て。

		int b=0;

		for(int i=a; i > 0;i--) {

			if(n%i==0) {
				a=i;
				b=(int)(n/a);
				break;
			}

		}

		int result=Math.max(String.valueOf(a).length(), String.valueOf(b).length());

		System.out.println(result);

		scanner.close();

	}

//	public static void run() {
//
//		for(int i=0;i<100000;i++) {
//			System.out.println("n= "+i+"sqrt(n)= "+Math.sqrt(i)+"(int) "+(int)Math.sqrt(i));
//		}
//	}
} Main public static void main(String[] args) {

//		run();

		Scanner scanner=new Scanner(System.in);

		long n=scanner.nextLong();

		int a=(int)Math.sqrt(n);//切り捨て。

		int b=0;

		for(int i=a; i > 0;i--) {

			if(n%i==0) {
				a=i;
				b=(int)(n/a);
				break;
			}

		}

		int result=Math.max(String.valueOf(a).length(), String.valueOf(b).length());

		System.out.println(result);

		scanner.close();

	} main {

//		run();

		Scanner scanner=new Scanner(System.in);

		long n=scanner.nextLong();

		int a=(int)Math.sqrt(n);//切り捨て。

		int b=0;

		for(int i=a; i > 0;i--) {

			if(n%i==0) {
				a=i;
				b=(int)(n/a);
				break;
			}

		}

		int result=Math.max(String.valueOf(a).length(), String.valueOf(b).length());

		System.out.println(result);

		scanner.close();

	} Scanner scanner=new Scanner(System.in); scanner new Scanner(System.in) long n=scanner.nextLong(); n scanner.nextLong() scanner.nextLong scanner int a=(int)Math.sqrt(n); a (int)Math.sqrt(n) Math.sqrt Math n int b=0; b 0 for(int i=a; i > 0;i--) {

			if(n%i==0) {
				a=i;
				b=(int)(n/a);
				break;
			}

		} int i=a; int i=a; i a i > 0 i 0 i-- i-- i {

			if(n%i==0) {
				a=i;
				b=(int)(n/a);
				break;
			}

		} {

			if(n%i==0) {
				a=i;
				b=(int)(n/a);
				break;
			}

		} if(n%i==0) {
				a=i;
				b=(int)(n/a);
				break;
			} n%i==0 n%i n i 0 {
				a=i;
				b=(int)(n/a);
				break;
			} a=i a i b=(int)(n/a) b (int)(n/a) n a break; int result=Math.max(String.valueOf(a).length(), String.valueOf(b).length()); result Math.max(String.valueOf(a).length(), String.valueOf(b).length()) Math.max Math String.valueOf(a).length() String.valueOf(a).length String.valueOf(a) String.valueOf String a String.valueOf(b).length() String.valueOf(b).length String.valueOf(b) String.valueOf String b System.out.println(result) System.out.println System.out System System.out result scanner.close() scanner.close scanner String[] args args public class Main {
	public static void main(String[] args) {

//		run();

		Scanner scanner=new Scanner(System.in);

		long n=scanner.nextLong();

		int a=(int)Math.sqrt(n);//切り捨て。

		int b=0;

		for(int i=a; i > 0;i--) {

			if(n%i==0) {
				a=i;
				b=(int)(n/a);
				break;
			}

		}

		int result=Math.max(String.valueOf(a).length(), String.valueOf(b).length());

		System.out.println(result);

		scanner.close();

	}

//	public static void run() {
//
//		for(int i=0;i<100000;i++) {
//			System.out.println("n= "+i+"sqrt(n)= "+Math.sqrt(i)+"(int) "+(int)Math.sqrt(i));
//		}
//	}
} public class Main {
	public static void main(String[] args) {

//		run();

		Scanner scanner=new Scanner(System.in);

		long n=scanner.nextLong();

		int a=(int)Math.sqrt(n);//切り捨て。

		int b=0;

		for(int i=a; i > 0;i--) {

			if(n%i==0) {
				a=i;
				b=(int)(n/a);
				break;
			}

		}

		int result=Math.max(String.valueOf(a).length(), String.valueOf(b).length());

		System.out.println(result);

		scanner.close();

	}

//	public static void run() {
//
//		for(int i=0;i<100000;i++) {
//			System.out.println("n= "+i+"sqrt(n)= "+Math.sqrt(i)+"(int) "+(int)Math.sqrt(i));
//		}
//	}
} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {

//		run();

		Scanner scanner=new Scanner(System.in);

		long n=scanner.nextLong();

		int a=(int)Math.sqrt(n);//切り捨て。

		int b=0;

		for(int i=a; i > 0;i--) {

			if(n%i==0) {
				a=i;
				b=(int)(n/a);
				break;
			}

		}

		int result=Math.max(String.valueOf(a).length(), String.valueOf(b).length());

		System.out.println(result);

		scanner.close();

	}

//	public static void run() {
//
//		for(int i=0;i<100000;i++) {
//			System.out.println("n= "+i+"sqrt(n)= "+Math.sqrt(i)+"(int) "+(int)Math.sqrt(i));
//		}
//	}
}
