Cod sursa(job #2200930)
Utilizator | Data | 2 mai 2018 21:44:35 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.42 kb |
#include <bits/stdc++.h>
#define rest 1999999973
using namespace std;
long long n,p;
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%d %d",&n,&p);
long long a=n;
int i=0;
long long nr=1;
while((1<<i)<=p)
{
if(((1<<i)&p)!=0)
nr=(nr*a)%rest;
a=(a*a)%rest;
i++;
}
printf("%d",nr);
return 0;
}