Cod sursa(job #3234174)
| Utilizator | Data | 6 iunie 2024 20:15:10 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <iostream>
#include <fstream>
unsigned long long hatvany(unsigned long long a, unsigned long long b){
unsigned long long szam;
if(b == 2){
return a*a;
}else if(b % 2 == 0){
szam = hatvany(a, b/2) * hatvany(a, b/2) % 1999999973;
}else{
szam = hatvany(a, b/2 + 1) * hatvany(a, b/2) % 1999999973;
}
return szam;
}
int main(){
unsigned long long n, p;
std::ifstream bem("lgput.in");
std::ofstream kim("lgput.out");
bem >> n >> p;
kim << hatvany(n, p) << "\n";
bem.close();
kim.close();
}
