题目描述
小氪在赛氪算法实验室中遇到了一个有趣的数学问题:给定整数N,需要找到两个正整数A和B,使得N等于A与B的乘积。定义F(A,B)为A和B十进制表示的位数中的较大值,例如F(3,11)=2(因为3是1位,11是2位)。请帮小氪计算所有满足条件的(A,B)组合中,F(A,B)的最小可能值。
输入
输入一个整数N(1≤N≤10¹⁰)
输出
输出F(A,B)的最小可能值
样例输入1
复制
10000
样例输出1
复制
3
样例输入2
复制
1000003
样例输出2
复制
7
样例输入3
复制
9876543210
样例输出3
复制
6
提示
#### 样例1解释:
当A=100、B=100时,100×100=10000。A和B的位数都是3位,因此F(A,B)=3。这是所有可能的因数对中,位数最大值最小的情况。例如,若选择(10,1000),则F(10,1000)=4(10是2位,1000是4位),比3更大,因此最小为3。
#### 样例2解释:
1000003是质数,因此唯一的因数对为(1,1000003)和(1000003,1)。1是1位,1000003是7位,故F(A,B)=7。由于没有其他因数对,这是唯一可能的结果。
#### 样例3解释:
存在因数对如A=123456、B=800910(假设123456×800910=9876543210,实际需验证因数分解),此时A是6位,B是6位,F(A,B)=6。若选择更小的位数组合(如5位×7位),则位数最大值为7,因此6是最小可能值。
来源/分类
数学 枚举