Cod sursa(job #2200930)

Utilizator PredaBossPreda Andrei PredaBoss Data 2 mai 2018 21:44:35
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <bits/stdc++.h>
#define rest 1999999973
using namespace std;
long long n,p;
int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf("%d %d",&n,&p);
    long long a=n;
    int i=0;
    long long nr=1;
    while((1<<i)<=p)
    {
        if(((1<<i)&p)!=0)
            nr=(nr*a)%rest;
        a=(a*a)%rest;
        i++;
    }
    printf("%d",nr);
    return 0;
}