公式如下
#include<vector>
#include<iostream>
#include<algorithm>
#include<unordered_map>
using namespace std;
typedef long long ll;
const int mod=1e9+7;
vector<int> primes;
unordered_map<int,int> hsh;
int main()
{
int n,a;
cin>>n;
while(n-- )
{
cin>>a;
for(int i=2;i<=a/i;i++)
{
if(a%i==0)
{
int s=0;
while(a%i==0)
{
s++;
a/=i;
}
hsh[i]+=s;
}
}
if(a>1) hsh[a]++;
}
ll ans=1;
for(auto x:hsh)
{
int b=x.first,cnt=x.second;
ll t=1;
while(cnt--)
{
t=(t*b+1)%mod;
}
ans=(ans*t)%mod;
}
cout<<ans<<endl;
}