Cod sursa(job #1934635)
| Utilizator | Data | 21 martie 2017 18:12:12 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.41 kb |
#include <bits/stdc++.h>
#define ll long long
#define MOD 1999999973
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
ll n,p;
ll put(ll a,ll n){
if(!n) return 1;
if(n==1) return (a%MOD);
if(n & 1) return (((put(a,n-1)%MOD)*a)%MOD);
if(!(n%2)) return (((put(a,n/2)%MOD)*(put(a,n/2)%MOD))%MOD);
}
int main()
{
fin>>n>>p;
fout<<put(n,p)%MOD;
return 0;
}
