4662: 【GESP2412五级】奇妙数字

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述


输入

第一行包含一个正整数$n$ ,含义如题面所示。

输出

输出一个正整数,代表满足条件的集合最多包含的奇妙数字个数。

样例输入 复制

128

样例输出 复制

3

提示

#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 1e5 + 10;
ll calc(ll x) {
    int ans = 0;
    ll tmp = 1;
    while (x >= tmp) {
        ans++;
        x -= tmp;
        tmp++;
    }
    return ans;
}
int main() {
    ll n;
    cin >> n;
    ll ans = 0;
    for (ll i = 2; i * i <= n; i++) {
        if (n % i == 0) {
            int cnt = 0;
            while (n % i == 0) {
                cnt++;
                n /= i;
            }
            ans += calc(cnt);
        }
    }
    if (n != 1) {
        ans += calc(1);
    }
    cout << ans << "\n";
}