约数之和
作者:
码上成功
,
2024-03-19 19:02:25
,
所有人可见
,
阅读 7
#include<iostream>
using namespace std;
const int mod=9901;
int a,b;
int qmi(int a,int b)
{
a%=mod;
int res=1;
while(b)
{
if(b&1) res=res*a%mod;
b>>=1;
a=a*a%mod;
}
return res;
}
int sum(int p,int k)
{
if(k==0) return 1;
if(k%2==0) return (p%mod*sum(p,k-1)+1)%mod; //k为偶数,但是有奇数个数
return (1+qmi(p,k/2+1))*sum(p,k/2)%mod; //k为奇数,但是有偶数个数
}
int main()
{
cin>>a>>b;
int res=1;
for(int i=2;i<=a;i++)
{
int s=0;
while(a%i==0)
{
s++;
a/=i;
}
if(s) res=res*sum(i,s*b)%mod;
}
if(a==0) cout<<0;
else cout<<res;
return 0;
}