Pagini recente » Cod sursa (job #894261) | Cod sursa (job #2472961) | Cod sursa (job #1357223) | Cod sursa (job #1981954) | Cod sursa (job #756732)
Cod sursa(job #756732)
#include <cstdio>
#include <iostream>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <sstream>
#include <iomanip>
#include <cmath>
#include <cstdlib>
#include <ctype.h>
#include <cstring>
#include <ctime>
using namespace std;
#define MOD 9901
int A, B, d, S;
int put(int a, int p) {
int r = 1;
while(p) {
if(p & 1) r = ((long long)r * a) % MOD;
a = ((long long)a * a) % MOD;
p /= 2;
}
return r;
}
int main() {
freopen("sumdiv.in", "r", stdin);
freopen("sumdiv.out","w", stdout);
scanf("%d %d", &A, &B);
S = 1;
for(d = 2; d * d <= A; d++)
if(A % d == 0) {
int p = 0;
while(A % d == 0) {
A /= d;
p++;
}
int n1 = (put(d, p * B + 1) - 1 + MOD) % MOD;
int n2 = put(d - 1, MOD - 2);
S = (long long)(S * n1) % MOD;
S = (long long)(S * n2) % MOD;
}
if(A > 1) {
int n1 = (put(A, B + 1) - 1 + MOD) % MOD;
int n2 = put(A - 1, MOD - 2);
S = (long long)(S * n1) % MOD;
S = (long long)(S * n2) % MOD;
}
printf("%d", S);
return 0;
}