Cod sursa(job #3211580)
Utilizator | Data | 9 martie 2024 15:46:51 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
#define MOD 1999999973
using namespace std;
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
int i, j, n, s, maxi, k, sf, sff, in, p;
long long int putere(int x)
{
long long int rez;
if(x == 1)
return n;
if(x%2 == 0)
{
rez=putere(x/2);
return (rez*rez+MOD)%MOD;
}
if(x%2 == 1)
{
rez=putere(x/2);
return (((rez*rez+MOD)%MOD)*n+MOD)%MOD;
}
}
int main()
{
fin>>n>>p;
fout<<putere(p);
}