import java.util.*;
public class Main{
static final int mod=(int)1e9+7;
static Map<Integer, Integer> map=new HashMap<Integer, Integer>();
static int t;
static long quick_pow(long a,long b){
long res=1;
while(b>0){
if((b&1)==1) res=res*a%mod;
a=a*a%mod;
b>>=1;
}
return res%mod;
}
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
t=scan.nextInt();
//求解每一個質因子的指數
while(t-->0){
int n=scan.nextInt();
for(int i=2;i<=n/i;i++){
if(n%i==0){
while(n%i==0){
n/=i;
if(map.get(i)==null) map.put(i, 1);
else map.put(i, map.get(i)+1);
}
}
}
if(n>1) {
if(map.get(n)==null) map.put(n, 1);
else map.put(n, map.get(n)+1);
}
}
//求約數和
long res=1;
Set<Integer> key=map.keySet();
Iterator<Integer> it=key.iterator();
while(it.hasNext()){
int p=it.next();
int k=map.get(p);
long s=0;
for(int i=0;i<=k;i++){
s+=quick_pow(p,i);
s%=mod;
}
res=res*s%mod;
}
System.out.println(res);
}
}