GESP编程共123题,本题是整站第1450题,已经有人完成了本题,加油!
小杨认为一个数字 x 是奇妙数字当且仅当 x=p^a,其中 p 为任意质数且 a 为正整数。例如,8=2^3,所以 8 是奇妙的,而 6 不是。
对于一个正整数 n,小杨想要构建一个包含 m 个奇妙数字的集合 {x1,x2,⋯,xm},使其满足以下条件:
小杨希望集合包含的奇妙数字尽可能多,请你帮他计算出满足条件的集合最多包含多少个奇妙数字。
第一行包含一个正整数 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的所有质因子及每个质因子出现的次数求出来,然后计算答案即可。
详见代码:
本站题目仅供学习,GESP版权归CCF所有,如有侵权请联系删除。站长陈老师QQ及微信:208234。