AcWing 871. 约数之和
原题链接
简单
作者:
wangyj
,
2020-10-22 20:25:05
,
所有人可见
,
阅读 310
#include<iostream>
#include<algorithm>
#include<unordered_map>
#include<vector>
using namespace std;
const int mod=1e9+7;
int main()
{
int n,i,m;
long long ans=1,a,b,t;
scanf("%d",&n);
unordered_map<int,int>prime;
while(n--){
scanf("%d",&m);
for(i=2;i<=m/i;i++)while(m%i==0)m/=i,prime[i]++;
if(m>1)prime[m]++;
}
for (auto p:prime){
a=p.first,b=p.second,t=1;
while(b--)t=(t*a+1)%mod;
ans=ans*t%mod;
}
printf("%d\n",ans);
return 0;
}