Pagini recente » Cod sursa (job #1592724) | Cod sursa (job #2700984) | Cod sursa (job #1805276) | Statistici cont de incercari (Serban_Petre) | Cod sursa (job #2637706)
#include <iostream>
#include <fstream>
using namespace std;
const int MOD = 1999999973;
/**Ridicare la putere in timp logaritmic
Dandu-se doua numere naturale N si P, se cere sa se calculeze restul impartirii lui NP la 1999999973.
Date de intrare
Fisierul de intrare lgput.in va contine 2 numere N si P.
Date de iesire
In fisierul de iesire lgput.out va fi scris un singur numar reprezentand restul impartirii lui NP la 1999999973.
Restrictii
2 ≤ N, P ≤ 232*/
ifstream f ( "lgput.in" );
ofstream g ( "lgput.out" );
int powlg ( long long a, long long p )
{
long long x = a%MOD;
int val=1;
while ( p > 0 )
{
if ( ( p & 1 ) != 0 )
val = val * x % MOD;
x = x * x % MOD;
p >>= 1;
}
return val;
}
int main()
{
long long n, p;
f >> n >> p;
g << powlg ( n, p );
f.close();
g.close();
return 0;
}