Pagini recente » Cod sursa (job #3287509) | Cod sursa (job #3282374) | Cod sursa (job #2176850) | Cod sursa (job #3281508) | Cod sursa (job #3290951)
#include <fstream>
#define Xp 1000000007
using namespace std;
ifstream cin("sumdiv.in");
ofstream cout("sumdiv.out");
#define MOD 9901
#define int long long
int f[1000001],rasp;
int put(int a,int n){
if(!n) return 1;
int aux=put(a,n/2);
if(n%2==1) return aux*aux%MOD*a%MOD;
return aux*aux%MOD;
}
void calc(int a,int n){
a%=MOD;
if(!a) return;
if(a==1) rasp=rasp*(n+1)%MOD;
else rasp=(rasp*(put(a,n+1)-1)%MOD*put(a-1,MOD-2)%MOD)%MOD;
}
signed main()
{
int a,b,i,cnt;rasp=1;
cin>>a>>b;
for(i=2;i*i<=a;i++){
if(a%i==0){
cnt=0;
while(a%i==0){
cnt++;a/=i;
}
calc(i,b*cnt);
}
}
if(a>1) calc(a,b);
cout<<rasp;
return 0;
}