Cod sursa(job #1611237)

Utilizator WongravenWongraven Wongraven Data 23 februarie 2016 23:36:08
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>

using namespace std;

int function (int number, int power) {
	if (power == 0) {
		return 1;
	} else if (power == 1) {
		return number;
	} else if (power % 2 == 0) {
		return function (number * number, power / 2);
	} else if (power % 2 == 1) {
		return function (number * number, (power - 1) / 2);
	}
}


int main() {

	int number, power;
	int constantForTheWin =  1999999973;
	
	ifstream file1("lgput.in");
	ofstream file2("lgput.out");

	file1 >> number;
	file1 >> power;

	file2 << function(number, power) % constantForTheWin;

	file1.close();
	file2.close();
}