因子和(数论,算数基本定理,快速幂,逆元)

来源:互联网 发布:制作软件程序 编辑:程序博客网 时间:2024/06/08 14:20

这里写图片描述
这里写图片描述
求逆元的方法,将在接下来讲到。

代码

#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>using namespace std;long long n,i,j,m,k;long long x,t;long long r(){    long long p=0,f=1;    char c=getchar();    while(c<'0'||c>'9')    {        if(c=='-')        {            f=-1;        }        c=getchar();    }    while(c>='0'&&c<='9')    {        p=p*10+c-'0';        c=getchar();    }    return p*f;}long long sum=0;long long power(long long a,long long b,long long p){    a%=p;    long long ret=1%p;    while(b)    {        if(b&1)        ret=ret*a%p;        b>>=1;        a=a*a%p;    }    return ret;}int main(){    n=r(),m=r();    sum++;    for(i=2;i<=sqrt(n);i++)    {        if(n%i==0)        {            t=0;            while(n%i==0)            {                n/=i;                t++;            }            t*=m;            sum*=(power(i,t+1,9901)-1)%9901*power(i-1,9899,9901)%9901;            sum%=9901;        }    }    if(n>1)    {        t=m;        sum*=(power(n,t+1,9901)-1)%9901*power(n-1,9899,9901)%9901;        sum%=9901;    }    cout<<sum;    return 0;}/*520 130 50 60 40 81*/

这里写图片描述

阅读全文
0 0