Cod sursa(job #3229365)

Utilizator Bogdan_128Pandele Bogdan Bogdan_128 Data 15 mai 2024 17:26:20
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>

using  namespace std;

ifstream cin("lgput.in");
ofstream cout("lgput.out");

long long int ridicare_log_mod(long long int nr, int power,long long int mod){
	nr = nr % mod;
	if(power>0){
		cout << nr << " " << power << "\n";
		if(!power%2)
			return ridicare_log(nr*nr, power/2, mod)%mod;
		else 
			return (nr%mod*ridicare_log(nr, power-1, mod))%mod;		
	}
	else 
		return 1;
}
int main(int argc, char *argv[]){
	long long int n, p,m = 1999999973;
	cin >> n >> p;
	cout << ridicare_log(n,p,m);
}