Cod sursa(job #2683005)
Utilizator | Data | 10 decembrie 2020 10:17:54 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
#include <iostream>
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long int n,p,a;
void lgput();
int main()
{
fin >> n >> p;
a = 1;
lgput();
fout << n;
return 0;
}
void lgput()
{
int n1 = n, a1 = a;
if (2*a <= p)
{
n = (n * n)% 1999999973;
a = a * 2;
lgput();
if (a + a1 == p) {
n = (n * n1) % 1999999973;
a = a + a1;
}
}
}