给定 n 个正整数 ai,请你输出这些数的乘积的约数个数,答案对 109+7 取模。
输入格式
第一行包含整数 n。
接下来 n 行,每行包含一个整数 ai。
输出格式
输出一个整数,表示所给正整数的乘积的约数个数,答案需对 109+7 取模。
数据范围
1≤n≤100,
1≤ai≤2×109
输入样例:
3
2
6
8
输出样例:
12
#include <iostream>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>
#include <unordered_map>
using namespace std;
typedef unsigned long long ull;
const int N = 1000010,P=1e9+7 ;
int n, m,len=1;
int primes[N], cnt;
int a[N];
int main()
{
int i,j,v=1;
cin>>n;
unordered_map<int,int>ma;
for(i=0; i<n; i++)
{
int x;
cin>>x;
for(j=2; j<=x/j; j++)
{
while(x%j==0)
{
ma[j]++;
x=x/j;
}
}
if(x>1)ma[x]++;
}
long long cnt=1;//别忘开long long
for(auto it=ma.begin();it!=ma.end();it++)
cnt=cnt*((*it).second+1)%P;
cout<<cnt;
return 0;
}