Cod sursa(job #674000)

Utilizator Daniel30daniel Daniel30 Data 5 februarie 2012 13:17:56
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.39 kb
#include <cstdio>
using namespace std;

#define Lmax 10001; 
#define m 1999999973;
#define F(exp) for(register int i=0;(exp);++i)

int n, p;
long long a, sol = 1;
int main()
{freopen("lgput.in","rt",stdin);
 freopen("lgput.out","wt",stdout);
 scanf("%d %d", &n, &p);
 a = n;
 F((1<<i) <= p)
	{if(((1<<i) & p) > 0)  sol=(sol * a) % m;
	 a=(a * a) % m;}
 printf("%lld\n", sol);
 return 0;
}