1 条题解

  • 0
    @ 2024-3-10 18:00:22
    #include <iostream>
    #include <map>
    using namespace std;
    map<int, int>mp;
    
    int dfs(int n)
    {
        if (n == 1)
        {
            return 1;
        }
        if (mp[n] == 0)
        {
            mp[n] = 1;
            for (int i = 2;i * i <= n;i++)
            {
                if (n % i == 0)
                {
                    if(i * i == n)
                    {
                        mp[n] += dfs(i);
                    }
                    else
                    {
                        mp[n] += (dfs(i) + dfs(n / i));
                    }
                }
            } 
        }
        return mp[n];
    }
    
    int main()
    {
        int N;
        cin >> N;
        cout << dfs(N);
        return 0;
    }
    
    • 1

    信息

    ID
    1509
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    225
    已通过
    15
    上传者