这道题思路,很简单,要求最多几个自然数能乘出一个数来,那一定是从最小的数开始尝试,去重或者不去重都无所谓,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;
}
}