Cod sursa(job #2041091)
| Utilizator | Data | 16 octombrie 2017 20:43:01 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
#include<fstream>
#include<queue>
#include<vector>
#define DN 1999999973
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long n,p,t,r=1,rez=1;
int main()
{
fin>>n>>p;
while(p)
{
t=1;
r=n%DN;
while(1)
{
if(2*t>p)
break;
r=(r*r)%DN;
t*=2;
}
p-=t;
rez=(rez*r)%DN;
}
fout<<rez;
}
