Nu aveti permisiuni pentru a descarca fisierul grader_test11.ok
Cod sursa(job #1554906)
Utilizator | Data | 21 decembrie 2015 22:26:15 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.4 kb |
#include <fstream>
#define imp 1999999973
using namespace std;
int main()
{
ifstream ii("lgput.in");
ofstream oo("lgput.out");
unsigned long long n, p, i, rest = 1, put = 1; ii >> n >> p;
unsigned long long r[32]; r[0] = n % imp;
if (p % 2) rest = r[0];
for (i = 1; i < 32; i++)
{
r[i] = (r[i-1]*r[i-1]) % imp; put *= 2;
if (p & put)
rest = (rest * r[i]) % imp;
}
oo << rest;
}