Cod sursa(job #1898539)

Utilizator maria_sinteaMaria Sintea maria_sintea Data 2 martie 2017 09:20:49
Problema Suma divizorilor Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>
#define n 9901

using namespace std;

int a, b;

int putere(int b, int a)
{
    if(b==0)
        return 1;
    if(b%2==0)
        return putere(b/2, a*a);
    return a*putere(b-1, a);
}

int sdiv()
{
    int s=0, d;
    int x=putere(b, a);
    for(d=1;d*d<x;d++)
        if(x%d==0)
            s=(s+d+x/d)%n;
    if(d*d==x)
        s=(s+d)%n;
    return s;
}

int main()
{
    freopen("sumdiv.in", "r", stdin);
    freopen("sumdiv.out", "w", stdout);

    scanf("%d %d", &a, &b);
    if(a==0)
        printf("0");
    else
       {
          int rez=sdiv();
          if(rez<0)
             rez+=9901;
          printf("%d", rez);
       }
    return 0;
}