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";
}