Cod sursa(job #645193)
| Utilizator | Data | 8 decembrie 2011 20:21:00 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include<cstdio>
#include<iostream>
using namespace std;
#define BIG_NUMBER 1999999973
int main(){
int p,x,a;
long long val, num;
freopen( "lgput.in", "r", stdin );
freopen( "lgput.out", "w", stdout );
scanf( "%d %d", &a, &x );
val = a;
num = 1;
p = 1;
while( p <= x ){
if( x & p ){
num = (num * val) % BIG_NUMBER;
}
val = (val * val) % BIG_NUMBER;
p <<= 1;
}
//cerr << num << endl;
printf("%lld", num);
}
