Cod sursa(job #1999014)

Utilizator dumitrescu_andreiDumitrescu Andrei dumitrescu_andrei Data 9 iulie 2017 23:10:25
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <cstdio>

using namespace std;

unsigned long long n,p;
unsigned long long putere(unsigned long long &n,unsigned long long &p){
    unsigned long long nr = 1;
    while(p != 0){
        if(p % 2 == 1){
            p -= 1;
            nr = nr * n % 1999999973;
        }
        n = n * n % 1999999973;
        p /= 2;
    }
    return nr;
}
int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf("%llu %llu",&n,&p);
    printf("%llu ",putere(n,p) % 1999999973);
    return 0;
}