Cod sursa(job #1600658)

Utilizator AdrianGotcaAdrian Gotca AdrianGotca Data 15 februarie 2016 11:53:16
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <fstream>
#define MOD 1999999973

using namespace std;

int n,p;
long long sol(int,int);
int main(){
    freopen("lgput.in","r",stdin);
    scanf("%d%d",&n,&p);
    freopen("lgput.out","w",stdout);
    printf("%lld",sol(n,p));
}

long long sol(int n,int p){
    if (p==0){
        return 1;
    }
    if (p%2==0){
        return sol((n%MOD*n%MOD)%MOD,p/2)%MOD;
    }
    return (n%MOD*sol((n%MOD*n%MOD)%MOD,p/2)%MOD)%MOD;
}