Cod sursa(job #766170)

Utilizator iris88Nagy Aliz iris88 Data 10 iulie 2012 15:11:51
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <list>
#include <queue>
using namespace std;
#define N 1999999973
long long power(long long n,long long p)
{
	if (p==0)
		return 1;
	if (p==1)
		return n;
	long long r1 = power(n,p/2);
	if (p%2== 0)
		return (r1*r1)%N;
	else
		return (((r1*r1)%N)*n)%N;
	
}
int main()
{
	FILE *f = fopen("lgput.in","r");
	FILE *g = fopen("lgput.out","w+");

	long long n,p;
	fscanf(f,"%lld %lld",&n,&p);
	long long res = power(n,p);
	fprintf(g,"%lld\n",res);
	fclose(f);
	fclose(g);
}