Cod sursa(job #3320325)
| Utilizator | Data | 4 noiembrie 2025 22:46:58 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
#include <iostream>
// alap hatványraemelés: P*P
// ez a fajta hatványraemeles: P*log(P)
long long hatvany(int n, int p){
if(p == 0)
return 1;
else if(p == 1)
return n % 1999999973;
long long rek = hatvany(n, p / 2);
if(p % 2 == 0)
return (rek * rek) % 1999999973;
else
return (rek * rek) % 1999999973 * n % 1999999973;
}
int main()
{
std::ifstream bem("lgput.in");
std::ofstream kim("lgput.out");
int n, p;
bem >> n >> p;
kim << hatvany(n, p);
}
