Cod sursa(job #574629)
| Utilizator | Data | 7 aprilie 2011 13:04:59 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
# include <fstream>
# define MOD 199999997
using namespace std;
int n, k;
long long ridicare ( int a, int b ) {
long long sol = 1, prod = a;
for ( int i = 0; ( 1 << i ) <= b; ++i ) {
if ( ( 1 << i ) & b ) sol = ( sol * prod ) % MOD;
prod = ( prod * prod ) % MOD;
}
return sol;
}
int main () {
std :: ifstream f ( "lgput.in" );
std :: ofstream g ( "lgput.out");
f >> n >> k;
g << ridicare ( n, k ) << '\n';
g.close ();
return 0;
}
