AcWing 870. 约数个数
原题链接
简单
作者:
minux
,
2020-04-28 18:18:18
,
所有人可见
,
阅读 554
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int P=1e9+7;
unordered_map<int, int> REC;
void DIV(int x){
for(int i=2; i<=x/i; ++i){
int cnt=0;
while(x%i==0){
cnt++;
x/=i;
}
REC[i]+=cnt;
}
if(x>1) REC[x]++;
}
int main(){
// 得到数的分解式
// 计算约数个数和约数和
int n;
cin>>n;
int x;
while(n--){
cin>>x;
DIV(x);
}
LL res=1;
for(auto it=REC.begin(); it!=REC.end(); ++it){
res=res*(it->second+1)%P;
}
cout<<res<<endl;
return 0;
}