Nu aveti permisiuni pentru a descarca fisierul grader_test11.in
Cod sursa(job #1291772)
Utilizator | Data | 13 decembrie 2014 11:22:43 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <cstdio>
#define MOD 1999999973
using namespace std;
int a;
int put(int b)
{
int p=1,x=1;
while(p<=b)
p*=2;
p/=2;
while(p)
{
if(p<=b)
{
x=(((x*x)%MOD)*a)%MOD;
b-=p;
}
else
{
x=(x*x)%MOD;
}
p/=2;
}
return x;
}
int main()
{
//freopen("lgput.in","r",stdin);
//freopen("lgput.out","w",stdout);
long long n;
cin>>a>>n;
cout<<put(n);
return 0;
}