Cod sursa(job #2381927)

Utilizator ShumaherAdasga Shumaher Data 17 martie 2019 14:19:57
Problema Suma divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#define MOD 9901

using namespace std;
ifstream in("sumdiv.in");
ofstream out("sumdiv.out");

long long int lgput(long long int A, long long int  B, long long int C) {
    long long int y = 1;
    if(B == 0 || A == 1)
        return 1;
    while(B > 1)
        if(B % 2 == 0) {
            B = B / 2;
            A = A * A % C;

        } else {
            B = (B - 1) / 2;
            y = y * A % C;
            A = A * A % C;
        }

    return A * y % C;
}

int solve(long long int A, long long int B) {
    return ((lgput(A, B, MOD) - 1) * A / (A - 1) % MOD + 1) % MOD;
}

int main() {
    long long int A, B;
    in >> A >> B;
    out << solve(A, B);
    return 0;
}