Cod sursa(job #1595468)

Utilizator razvandRazvan Dumitru razvand Data 10 februarie 2016 12:14:36
Problema Suma divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <cmath>
#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 == 0)
        return 1;
    if(b == 1)
        return a%r;
    if(b == 2)
        return (a*i)%r;
    if(b % 2 == 0) {
        long long p = pow(a, b/2, i)%r;
        return (p * p)%r;
    } else {
        return ((pow(a, b-1, i))%r * i)%r;
    }
}

int main() {

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

    long long p = pow(a, b+1, a%r);
    long long inv = pow(a-1, r-2, a%r);
    long long sum = 1+p;
    sum %= r;
    long long sq = sqrt(p);

    out << (p-1)/((a-1)%r);

    return 0;
}