M函数

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

对于两个给定的正整数 X,YX, Y,定义 M(X,Y)M(X,Y) 为:XXYY 两者位数的较大值。例如 M(120,5)=3M(120, 5)=3,因为 12012033 位数,5511 位数。

任何正整数 NN 都可以分解为两个正整数的乘积:N=X×YN = X \times Y。我们把这样的 (X,Y)(X,Y) 称为 NN 的一对因子对(注意 XXYY 可能相等)。现在给定整数 NN,请你求出 NN 所有可能的因子对中,M(X,Y)M(X, Y) 的最小值。

输入格式

一行,一个正整数 NN

输出格式

一行,一个整数,表示所有因子对中 M(X,Y)M(X, Y) 的最小值。

10000
3
100000007
9
9876543210
6

样例解释

  • 样例 1110000=100×10010000 = 100 \times 100,此时 XXYY 都是 33 位数,M=3M=3,且无法得到更小的 MM
  • 样例 22100000007100000007 自身是素数,因子对只有 (1,100000007)(1, 100000007),位数分别为 1199,因此 M=9M=9
  • 样例 33:可通过合适的因子对使 MM 达到 66,例如 9876543210=99990×987699876543210 = 99990 \times 98769 或其它,最终最小值为 66

数据范围与提示

  • 1N10101 \le N \le 10^{10}

编程素养大赛_赛前练兵1

未认领
状态
已结束
题目
18
开始时间
2026-5-13 0:00
截止时间
2026-6-25 23:59
可延期
24 小时