您当前的位置: 首页 > 

MangataTS

暂无认证

  • 0浏览

    0关注

    423博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

AcWing 871. 约数之和(唯一分解定理+组合数)

MangataTS 发布时间:2022-02-12 14:56:00 ,浏览量:0

题目连接

https://www.acwing.com/problem/content/description/873/

思路

如果n可以写成 f ( n ) = a 1 α 1 × a 2 α 2 … … × a k α k f(n)=a_1^{α_1}\times a_2^{α_2}……\times a_k^{α_k} f(n)=a1α1​​×a2α2​​……×akαk​​( a 1 , a 2 , … … , a k a_1,a_2,……,a_k a1​,a2​,……,ak​均为质数) 那么n的约数的和为: s u m = ( a 1 0 + a 1 1 + a 1 2 + … … a 1 α 1 ) × ( a 2 0 + a 2 1 + a 2 2 + … … a 2 α 2 ) × … … × ( a k 0 + a k 1 + a k 2 + … … a k α k ) sum = (a_1^0 + a_1^1+a_1^2+……a_1^{α_1})\times (a_2^0 + a_2^1+a_2^2+……a_2^{α_2})\times …… \times (a_k^0 + a_k^1+a_k^2+……a_k^{α_k}) sum=(a10​+a11​+a12​+……a1α1​​)×(a20​+a21​+a22​+……a2α2​​)×……×(ak0​+ak1​+ak2​+……akαk​​) 所以我们直接将每一个因子唯一分解后将数量统计出来,最后然后遍历将每个质因子的贡献通过求和公式算出并累乘即可,详情请看吗代码

代码
#include 
using namespace std;
#define mod 1000000007
#define ll long long
#define int long long
map vis;
ll n,a;
void slove(){
    for(ll i = 2;i * i >= 1;
    }
    return ans;
}

ll inv(ll x) {return ksm(x,mod-2);}

signed main()
{
    scanf("%lld",&n);
    for(ll i = 1;i             
关注
打赏
1665836431
查看更多评论
0.0402s