#include<iostream>#include<unordered_map>usingnamespace std;typedeflonglong LL;constint mod =1e9+7;int n;
unordered_map<int,int>pa;voidbroke(int x){for(int i =2; i <= x / i; i++){while(x % i ==0){
x /= i;
pa[i]++;}}if(x >1)pa[x]++;}intmain(){
cin >> n;while(n--){int a;
cin >> a;broke(a);}
LL ans =1;for(auto t : pa)ans = ans *(t.second +1)% mod;
cout << ans;return0;}
#include<iostream>#include<unordered_map>usingnamespace std;typedeflonglong LL;constint mod =1e9+7;int n;
unordered_map<int,int>primes;//<质因数,质因数指数>voidbroke(int x)//统计质因数和其指数{for(int i =2; i <= x / i; i++){while(x % i ==0){
x /= i;
primes[i]++;}}if(x >1)primes[x]++;}intmain(){
cin >> n;while(n--){int a;
cin >> a;broke(a);}
LL res =1;for(auto prime : primes){
LL t =1;int p = prime.first, q = prime.second;while(q--)//求和
t =(t * p +1)% mod;
res = res * t % mod;}
cout << res << endl;return0;}