Cod sursa(job #1673212)

Utilizator FragentisMihai Petru Fragentis Data 3 aprilie 2016 15:58:56
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
using namespace std;

#define MOD 1999999973

unsigned long long putere(unsigned long long x, unsigned long long y)
{
    if(y == 0)
        return 1;

    unsigned long long z = putere(x, y/2);

    if(y%2 == 0)
        return (z*z) % MOD;
    return ( ((z*z)%MOD) * x) % MOD;
}

int main()
{
    unsigned long long x, y;
    FILE* f = fopen("lgput.in", "r");

    fscanf(f, "%llu%llu", &x, &y);
    fclose(f);

    f = fopen("lgput.out", "w");
    fprintf(f, "%llu", putere(x,y));
    fclose(f);

    return 0;
}