算法AcWing 871. 约数之和
Posted karshey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法AcWing 871. 约数之和相关的知识,希望对你有一定的参考价值。
算法思想:
注意别用pow,很慢。
#include<iostream>
#include<math.h>
#include<unordered_map>
#define LL long long int
using namespace std;
const int MOD=1e9+7;
int main()
{
int n;cin>>n;
unordered_map<int,int>a;
while(n--)
{
int x;cin>>x;
for(int i=2;i<=x/i;i++)
{
while(x%i==0)
{
a[i]++;
x/=i;
}
}
if(x>1) a[x]++;
}
LL ans=1;
for(auto i:a)
{
LL t=1;
LL t1=i.first,t2=i.second;
while(t2--) t=(t*t1+1)%MOD;
ans=ans*t%MOD;
}
cout<<ans;
return 0;
}
以上是关于算法AcWing 871. 约数之和的主要内容,如果未能解决你的问题,请参考以下文章
《算法竞赛进阶指南》-AcWing-97. 约数之和 Sumdiv-题解