题目:
代码:
#include<iostream>
#include<algorithm>
#include<unordered_map>
using namespace std;
typedef long long LL;
const int mod=1e9+7;
int main(){
int n;
cin>>n;
unordered_map<int,int> primes; //存所有的底数和指数
while(n--){
int a;
cin>>a;
for(int i=2;i<=a/i;i++){
while(a%i==0){
a/=i;
primes[i]++;
}
}
if(a>1) primes[a]++;
}
LL res=1;
for(auto prime:primes) res=res*(prime.second+1)%mod; //约数个数计算公式
cout<<res<<endl;
return 0;
}