Pagini recente » Monitorul de evaluare | Cod sursa (job #6076) | Cod sursa (job #304847) | Cod sursa (job #1389568) | Cod sursa (job #731490)
Cod sursa(job #731490)
#include <fstream>
#define MOD 1999999973
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long lgput(int p, int a, int m);
int main()
{
int a, b;
fin >> a >> b;
fout << lgput(a, b, MOD);
fin.close();
fout.close();
return 0;
}
long long lgput(int a, int b, int m)
{
if ( b == 1 )
return a;
if ( b == 0 )
return 1;
long long rez = 1;
rez = lgput(a, b / 2, m);
rez = (rez * rez ) % m;
if ( b & 1 ) // b - impar
rez *= a;
return rez % m;
}