这道题思路,很简单,要求最多几个自然数能乘出一个数来,那一定是从最小的数开始尝试,去重或者不去重都无所谓,i是递增的,本来就保证了不会重复。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int M=1e6+5;
int a[M];
int n;
int main(){
    int t;
    cin>>t;
    while(t--){
        memset(a,0,sizeof(a));
        cin>>n;
        int tot=0;
        for(int i=1;i<=n;i++){
            if(n%i==0){
                a[++tot]=i;
                n/=i;
            }
        }
     //   int num=unique(a+1,a+1+tot)-(a+1);
        cout<<tot<<endl;
    }
    return 0;
}
}