Cod sursa(job #808759)

Utilizator UnforgivenMihai Catalin Botezatu Unforgiven Data 7 noiembrie 2012 11:13:15
Problema Suma divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <iostream>
#include <stdio.h>
#define MOD 9901
using namespace std;
long long power(long long x, long long y)
{
    long long p = 1;
    while (y > 0)
    {
        if (y % 2 == 1)
        {
            p = p * x % MOD;

        }
        y = y / 2;
        x = x * x % MOD;

    }
    return p % MOD;
}
int main()
{
    FILE *input = fopen("sumdiv.in","r");
    FILE *output = fopen("sumdiv.out","w");
    long long a;
    long long b;
    fscanf(input,"%lld",&a);
    fscanf(input,"%lld",&b);
    if (a == 1)
    {
        fprintf(output,"%d",1);
        fclose(input);
        fclose(output);
        return 0;
    }
    long long answer = ( ( power(a,b+1) -1 ) / (a - 1)   )  % MOD;
    fprintf(output,"%lld",answer);
    fclose(input);
    fclose(output);
    cout << "Hello world!" << endl;
    return 0;
}