核心思想:
#include<iostream>
#include<algorithm>
#include<vector>
#include<unordered_map>
using namespace std;
typedef long long LL;
const int N = 110 , 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] ++;
}
LL res = 1;
for(auto p : primes)
{
int a = p.first , b = p.second;
LL t = 1;
while(b--) t = (t * a + 1) % mod; //求p方+p+1之类的
res = res * t % mod; //公式 全部乘起来
}
cout<<res;
}