Cod sursa(job #396611)
Utilizator | Vicol Sergiu Constantin Ergo | Data | 15 februarie 2010 17:41:56 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <fstream>
#define BIG 1999999973
using namespace std;
int N, P, sol = 1;
void Citire(void)
{
ifstream fin("lgput.in");
fin >>N >>P;
fin.close();
}
void Rezolva(void)
{
int i, Pow = N;
for (i = 1; i <= P; i = (i << 1))
{
if (i & P)
sol = (sol * Pow) % BIG;
Pow = (Pow * Pow) % BIG;
}
}
void Afiseaza(void)
{
ofstream fout("lgput.out");
fout <<sol;
fout.close();
}
int main()
{
Citire();
Rezolva();
Afiseaza();
return 0;
}