题解:递归法
#include<iostream>
#include<cmath>
using namespace std;
int ans;//记录组数
void fenjie(int x,int y){//x是除数,y是被分解数
for(int i=x;i<=sqrt(y);i++){
if(y%i==0){
ans++;
fenjie(i,y/i);//继续分解y
}
}
return ;
}
int main()
{
int n,m;
cin>>n;
while(n--){
cin>>m;
ans=1;
fenjie(2,m);//除数从2开始,不包括题中“a=a”的情况,所以ans初始值应为1
cout<<ans<<endl;
}
return 0;
}