Cod sursa(job #2063724)

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

int putere (int n, int p){
	int aux = n, rez = 1, putere = 1;
	while (p){
		while (putere * 2 <= p){
			aux *= aux;
			putere *= 2;
			aux %= 1999999973;
		}
		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 ("%d\n", putere (n, p));
}