1 条题解

  • 0
    @ 2025-11-23 21:53:41

    C++ :

    #include <iostream>
    #include <vector>
    #include <cmath>
    using namespace std;
    const int MAX_N = 1e3 + 9;
    
    long long n;
    int sum;
    
    int cal(int x)  //把x进行拆分 1 + 2 + 3 ......
    {
        int p = 1 , num = 0;
        while(x >= p)
        {
            num++;
            x -= p;
            p++;
        }
        return num;  
    }
    
    int main()
    {
        cin >> n;
        for(long long i = 2; i * i <= n; i++)
        {
            if(n % i == 0)  //i为n的因子
            {
                int cnt = 0;
                while(n % i == 0)
                {
                    cnt++;
                    n /= i;
                }
                sum += cal(cnt);
            }
        }
        if(n != 1)
            sum += cal(1);
        cout << sum;
        return 0;
    }
    
    
    • 1

    信息

    ID
    5646
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者