Cod sursa(job #1486389)
| Utilizator | Data | 14 septembrie 2015 19:46:11 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include <fstream>
#include <iostream>
#define mod 1999999973;
using namespace std;
long long int p(long long int a, long long int b){
if (b == 0) return 1;
else if (b == 1) return a % 1999999973;
else if (!(b % 2)) return (p(a*a % 1999999973, b / 2) % 1999999973);
else return a*p(a*a % 1999999973, (b - 1) / 2) % 1999999973;
}
int main(){
long long int N, P;
ifstream f("lgput.in");
ofstream of("lgput.out");
f >> N >> P;
of << p(N, P) % 1999999973;
return 0;
}