Cod sursa(job #2509471)
| Utilizator | Data | 14 decembrie 2019 11:29:40 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.38 kb |
#include <fstream>
using namespace std;
ifstream f ("lgput.in");
ofstream g ("lgput.out");
long long n,p,a[1001],i,j,m=1999999973,nr=1,k;
int main()
{
f>>n>>p;
k=n;
while (p)
{
a[i]=p%2;
p/=2;
i++;
}
for (j=0;j<i;j++)
{
if (a[j]==1) nr=((nr%m)*k)%m;
k=((k%m)*(k%m))%m;
}
g<<nr;
return 0;
}
