为什么 Dev-C++ 和 VSC 的答案不一样?
查看原帖
为什么 Dev-C++ 和 VSC 的答案不一样?
574944
Micnation_AFO楼主2022/3/4 22:54

rt
input:

488 1314

Dev-c++:

-3695

VSC:

6184

Code:

#include <bits/stdc++.h>
using namespace std;

#define int long long
#define mod 9901
int a, b;
int ans = 1;


int power(int a, int b) {
    int ans = 1 % mod;
    a %= mod, b %= mod;
    for (; b; b >>= 1) {
        if (b & 1) ans = ans * a % mod;
        a = a * a % mod;
    }
    return ans;
}

int sumdiv(int p, int c) {
    if (c == 0) return 1;
    if (c % 2 == 1) return ((power(p, (c + 1) / 2) + 1) % mod) * sumdiv(p, (c - 1) / 2) % mod;
    else return (sumdiv(p, c - 1) + power(p, c)) % mod;
}

signed main() {
    cin >> a >> b;
    int n = a;
    for (int i = 2; i <= sqrt(n); i++) {
        if (n % i != 0) continue;
        int cnt = 0;
        while (a % i == 0) a /= i, cnt++;
        ans = ans * sumdiv(i, cnt * b) % mod;
    }
    if (a != 1) ans = ans * sumdiv(a, 1 * b) % mod;
    cout << ans << endl;
    return 0;
}

2022/3/4 22:54
加载中...