Cod sursa(job #521417)

Utilizator Catah15Catalin Haidau Catah15 Data 12 ianuarie 2011 14:37:55
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <iostream>
#define MOD 1999999973
using namespace std;

int power2(int a, int n)
{
	if(n == 0) return 1;
	
	int halfpower = power2(a, n/2) % MOD; 
	
	if(n % 2 == 0)
	return (halfpower * halfpower) % MOD;
	else return (halfpower * halfpower * a) % MOD;
}

int power(int a, int n)
{
	if(n == 0) return 1;
	return a * power(a, n - 1);
}

int main()
{
	int a, n;
	cout << "Dati a ";
	cin >> a;
	
	cout << "Dati n ";
	cin >> n;
	
	cout << power2(a,n) << '\n';

	return 0;
}