Cod sursa(job #1044573)

Utilizator jul123Iulia Duta jul123 Data 30 noiembrie 2013 01:19:33
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<iostream>
#include<cstdio>
#define MOD 1999999973

using namespace std;

int lgput(int x, int y)
{
    int m;
    if(y==0)
        return 1;
    if(y==1)
        return x%MOD;
    if(y==2)
        return (x*x)%MOD;
    m=lgput(x, y/2);
    if(y%2==0)
        return (m*m)%MOD;
        else
            return (x*m*m)%MOD;
}

int main()
{
    FILE *fin, *fout;
    fin=fopen("lgput.in","r");
    fout=fopen("lgput.out","w");

    int n, p, k;
    fscanf(fin, "%d %d", &n, &p);
    k=lgput(n, p);
    fprintf(fout, "%d", k);
}