Cod sursa(job #1155073)

Utilizator RazvanR104Razvan-Andrei Ciocoiu RazvanR104 Data 26 martie 2014 17:14:43
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <cstdio>

using namespace std;

const int mod = 1999999973;
unsigned int P;
long long N;

int main()
{
    freopen("lgput.in", "r", stdin);
	freopen("lgput.out", "w", stdout);

	scanf("%lld %u", &N, &P);

	int rez = 1, i;

	for (i = 0; (1LL << i) <= P; ++i)
    {
        if ((P >> i) & 1)
            rez = (rez * N) % mod;
        N = (N * N) % mod;
    }

    printf("%u\n", rez);
	fclose(stdout);
    return 0;
}