Cod sursa(job #2102314)

Utilizator mihai.alphamihai craciun mihai.alpha Data 8 ianuarie 2018 17:30:09
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;

#define fi first
#define se second
#define VI vector<int>
#define PII pair<int,int>
#define PDD pair<double,double>
#define ll long long
#define lf double
#define pb push_back
#define For(i, j, n)for(int i = j;i <= n;i++)
#define iFor(i, j, n)for(int i = n;i >= j;i--)
#define R scanf
#define S scanf
#define P printf
#define fin stdin
#define fout stdout

#define DBG 1

const ll mod = 1999999973;

ll a, b;

int main()  {
	if(DBG)  {
		freopen("lgput.in", "r", stdin);
		freopen("lgput.out", "w", stdout);
	}
	cin >> a >> b;
	ll p = 1LL;
	while(b)  {
        if(b % 2LL)  {
            p *= a, p %= mod;
        }
        b /= 2;
        a *= a, a %= mod;
	}
	cout << p;
	return 0;
}