约数个数问题
#include<iostream>
#include<unordered_map>
using namespace std;
const int N=1010;
int p[N];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++)cin>>p[i];
for(int i=0;i<n;i++){
unordered_map<int,int>h;
for(int j=2;j<=p[i]/j;j++){
if(p[i]%j==0)while(p[i]%j==0){
p[i]/=j;
h[j]++;
}
}
if(p[i]!=1)h[p[i]]++;
unordered_map<int,int>::iterator it=h.begin();
long long res=1;
while(it!=h.end()){
int a=it->second;
res=res*(a+1);
it++;
}
cout<<res<<endl;
}
}