Cod sursa(job #2633024)

Utilizator alex.prohnitchiAlex Prohnitchi alex.prohnitchi Data 6 iulie 2020 12:13:04
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>

typedef long long ll;

const ll mod=1999999973;

#define all(x) x.begin(),x.end()
#define allr(x) x.rbegin(),x.rend()
#define rc(x)  return cout<<x<<"\n",0
#define sz(s)  (int) s.size()
#define pb push_back
#define mp make_pair
#define fr first
#define sc second

using namespace std;

ll poww(ll n, ll p) {
	int result=1;
	while (p>0) {
		if (p%2==1)result=(result*n)%mod;
		n=(n*n)%mod;	
		p/=2;
		result=(result)%mod;
	}
	return (result)%mod;
}

int main() {
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	ifstream cin("lgput.in");
	ofstream cout("lgput.out");
	ll n,p;
	cin >> n >> p;
	ll result=poww(n,p);
	cout << (result)%mod << '\n';

}
//347024897
//189878559
//1875584970