奇♂妙拆分

https://ac.nowcoder.com/acm/problem/14709

不同的约数乘积为n,约数个数最多

最多的话,约数尽可能小,所以按照1,2,3....的顺序开始找就可以了(同时约数不一样)

最后n=1,输出就可以

n!=1,说明其中一个约数和n的乘积可以变为另一个约数

#include <bits/stdc++.h>
using namespace std;
int t,n;
int cnt;
signed main() {
    //freopen("in","r",stdin);
    ios::sync_with_stdio(0);
    cin >> t;
    while(t--){
        cnt = 0;
        cin >> n;
        for(int i = 1; i <= n; i++){
            if(n % i == 0){
                n /= i;
                cnt++;
            }
        }
        cout << cnt << endl;
    }
    return 0;
}
原文地址:https://www.cnblogs.com/xcfxcf/p/12925260.html