Cod sursa(job #1466491)

Utilizator SolcanMihaiSolcan Mihai Andrei SolcanMihai Data 29 iulie 2015 12:18:19
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>
#include <cstring>
#include <cstdlib>
#define MOD 1999999973

using namespace std;

long long solve(long long x, long long p)
{
    long long prod = 1;

    while(p > 1)
    {
        if(p % 2 == 0)
        {
            p /= 2;
            x *= x;
            x = x % MOD;
        }
        else
        {
            p--;
            prod *= x;
            prod = prod % MOD;
        }
    }

    return (prod * x) % MOD;
}

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

    long long x, p, prod;

    scanf("%lld %lld", &x, &p);

    prod = solve(x, p);

    printf("%lld", prod);

    return 0;
}