import std.algorithm;
import std.conv;
import std.range;
import std.stdio;
import std.typecons;

void main()
{
	stdin.byLineCopy.parse.expand.solve.writeln;
}

auto parse( Range )( Range input )
if( isInputRange!Range && is( ElementType!Range == string ) )
{
	auto n = input.front.to!( long );
	return tuple( n );
}

auto solve( long n )
{
	auto ans = long.max;
	for( auto a = 1L; a ^^ 2 <= n; a++ )
	{
		if( n % a == 0 ) ans = min( ans, f( a, n / a ) );
	}
	
	return ans;
}

auto f( long a, long b )
{
	return max( a.to!( string ).length, b.to!( string ).length );
}
