Cod sursa(job #1592001)

Utilizator razvandRazvan Dumitru razvand Data 6 februarie 2016 22:39:04
Problema Suma divizorilor Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>
#define r 9901

using namespace std;

ifstream in("sumdiv.in");
ofstream out("sumdiv.out");

long long pow(long long a, long long b, long long i) {
    if(b == 1)
        return a%r;
    if(b == 2)
        return (a%r)*i;
    if(b % 2 == 0) {
        long long p = pow(a, b/2, i);
        p %= r;
        return p * p;
    } else {
        return (pow(a, b-1, i)%r) * i;
    }
}

int main() {

    int a,b;
    in >> a >> b;

    long long p = pow(a, b, a%r);
    int sum = 0;

    for(long long i = 1; i <= p; i++) {
        if(p % i == 0)
            sum += i%r;
        if(sum >= r)
            sum %= r;
    }

    out << sum;

    return 0;
}