Cod sursa(job #2063729)

Utilizator AndreiSeritanAndrei Seritan AndreiSeritan Data 11 noiembrie 2017 13:39:29
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.43 kb
#include <stdio.h>

long long putere (int n, int p){
	long long aux = n, rez = 1, putere = 1;
	while (p){
		while (putere * 2 <= p){
			aux = (aux * aux) % 1999999973;
			putere *= 2;
		}
		p = p - putere;
		rez *= aux;
		aux = n;
		putere = 1;
		rez %= 1999999973;
	}
	return rez;
}

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