Cod sursa(job #1629616)

Utilizator Antonio9227wdasdas Antonio9227 Data 4 martie 2016 17:01:54
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <stdio.h>

using namespace std;
long long m=1999999973;

unsigned long long exp_pow(unsigned int a,unsigned int n)
{
    if(n==1)return a;
    if(n%2==0)
    {
        long long res=exp_pow(a,n/2)%m;
        return (res*res)%m;
    }
    else
    {
        long long res=exp_pow(a,(n-1)/2)%m;
        return a*((res*res)%m)%m;
    }
}

int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    unsigned int n,p;
    scanf("%u%u",&n,&p);
    printf("%u",exp_pow(n,p));

}