C++ 代码
#include<iostream>
#include<algorithm>
#include<unordered_map>
using namespace std;
const int mod=1e9+7;
int main()
{
int n;cin>>n;
unordered_map<int,int> primes;//哈希表 底数,指数
while(n--){
int x;
cin>>x;
for(int i=2;i<=x/i;i++)
{
while(x%i==0)
{
x/=i;
primes[i]++;
}
}
if(x>1) primes[x]++;//注意,前面只遍历了<sqrt(x)的因子,可能会有一个大于x的因子
}
long long res=1;
for(auto prime:primes) res=res*(prime.second+1)%mod;//如此遍历哈希表 res*=....错误
cout<<res<<"\n";
return 0;
}