97. 约数之和数学 快速幂

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了97. 约数之和数学 快速幂相关的知识,希望对你有一定的参考价值。


#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int mod=9901;
LL a,b;
LL quick_mi(LL a,LL b)

    LL sum=1;
    while(b)
    
        if(b&1) sum=sum*a%mod;
        b>>=1;
        a=a*a%mod;
    
    return sum%mod;

LL sum(LL p,LL k)

    if(k==1) return 1;
    if(k&1) return sum(p,k-1)%mod+quick_mi(p,k-1)%mod;
    else return sum(p,k/2)%mod*(quick_mi(p,k/2)%mod+1);

int main(void)

    cin>>a>>b;
    LL ans=1;
    for(int i=2;i*i<=a;i++)
    
        LL s=0;
        while(a%i==0) a/=i,s++;
        if(a) ans=ans*sum(i,s*b+1)%mod;
    
    if(a!=1) ans=ans*sum(a,1*b+1)%mod;
    if(a==0) puts("0");
    else cout<<ans;
    return 0;

以上是关于97. 约数之和数学 快速幂的主要内容,如果未能解决你的问题,请参考以下文章

97. 约数之和

97. 约数之和(分治)

AcWing - 97 - 约数之和(分治因数和)

算法刷题AcWing 97. 约数之和——递推

《算法竞赛进阶指南》-AcWing-97. 约数之和 Sumdiv-题解

《算法竞赛进阶指南》-AcWing-97. 约数之和 Sumdiv-题解