✏️ 纠错
第 89 题 / 共 155 题
题目描述
小杨认为一个数字 x 是奇妙数字当且仅当 x=p^a,其中 p 为任意质数且 a 为正整数。例如,8=2^3,所以 8 是奇妙的,而 6 不是。
对于一个正整数 n,小杨想要构建一个包含 m 个奇妙数字的集合 {x1,x2,⋯,xm},使其满足以下条件:
- 集合中不包含相同的数字。
- x1×x2×⋯×xm 是 n 的因子(即 x1,x2,⋯,xm 这 m 个数字的乘积是 n 的因子)。
小杨希望集合包含的奇妙数字尽可能多,请你帮他计算出满足条件的集合最多包含多少个奇妙数字。
输入格式
第一行包含一个正整数 n,含义如题面所示。
输出格式
输出一个正整数,代表满足条件的集合最多包含的奇妙数字个数。
输入输出样例
输入 #1
128
输出 #1
3
说明/提示
样例解释
关于本样例,符合题意的一个包含 3 个奇妙数字的集合是 {2,4,8}。首先,因为 2=2^1,4=2^2,8=2^3,所以 2,4,8 均为奇妙数字。同时,2×4×8=64 是 128 的的因子。
由于无法找到符合题意且同时包含 4 个奇妙数字的集合,因此本样例的答案为 3。
数据范围
对于 100% 的数据,保证 2≤n≤10^12。
| 子任务编号 | 得分占比 | n |
|---|---|---|
| 1 | 20% | ≤10 |
| 2 | 20% | ≤1000 |
| 3 | 60% | ≤10^12 |
你真棒!
📝 题目解析
【考纲知识点】质因数分解,贪心
【解析】要找到满足条件的奇妙数字集合,首先需要将正整数n分解为其质因数的幂次形式。每个质因数的不同幂次都是奇妙数字,并且这些幂次的乘积是n的因子。将每个质因数的幂次拆分成连续自然数时,拆分的奇妙数字个数最多。因此,最大数量的奇妙数字就是所有质因数的指数拆分为连续整数的个数之和。
参考程序
解析2
将n的所有质因子及每个质因子出现的次数求出来,然后计算答案即可。
详见代码: