1 条题解

  • 0
    @ 2025-10-17 21:48:00

    解题思路

    要解决这个问题,我们需要找到每个正整数 xx 能分解出的最大立方因子的立方根(即最大的整数 aa,使得 a3a^3xx 的因子)。核心思路基于质因数分解立方因子提取

    关键思路

    任何正整数 xx 都可分解为质因数的幂次乘积:

    $$x = p_1^{k_1} \times p_2^{k_2} \times \dots \times p_n^{k_n} $$

    其中 pip_i 是质因数,kik_i 是对应指数。

    对于每个质因数 pip_i,其指数 kik_i 可拆分为 3×mi+ri3 \times m_i + r_iri{0,1,2}r_i \in \{0,1,2\} 是余数)。此时,能提取的最大立方因子为 pi3mi=(pimi)3p_i^{3m_i} = (p_i^{m_i})^3。将所有质因数的 pimip_i^{m_i} 相乘,得到的结果就是最大的 aa(即 a=pimia = \prod p_i^{m_i})。

    具体步骤

    1. 质因数分解:对每个 xx 进行质因数分解,得到所有质因数及其指数。

      • 从最小的质数 22 开始,到 x\sqrt{x} 遍历,统计每个能整除 xx 的质数的指数。
      • 若遍历后 xx 仍大于 11,说明剩余的 xx 本身是一个大质因数。
    2. 提取立方因子:对每个质因数的指数 kk,计算 m=k//3m = k // 3(即能提取的立方次数)。

    3. 计算最大 aa:将所有质因数的 pmp^m 相乘,得到最终的 aa

    示例验证

    • 对于 x=125x = 125,质因数分解为 535^33//3=13 // 3 = 1,故 a=51=5a = 5^1 = 5
    • 对于 x=81x = 81,质因数分解为 343^44//3=14 // 3 = 1,故 a=31=3a = 3^1 = 3
    • 对于 x=52x = 52,质因数分解为 22×1312^2 \times 13^12//3=02 // 3 = 01//3=01 // 3 = 0,故 a=20×130=1a = 2^0 \times 13^0 = 1

    这种方法通过质因数分解与立方因子的提取,确保了 aa 是能从 xx 中分解出的最大立方根。

    • 1

    信息

    ID
    3273
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者