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