Cod sursa(job #1601261)
Utilizator | Data | 15 februarie 2016 20:39:05 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
#include <cstdio>
using namespace std;
const int mod = 1999999973 ;
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
int n , p;
scanf("%d %d",&n,&p);
int a = n , sol = 1 ;
for ( int i = 0 ; (1<<i) <= p; ++i)
{
if ( ( ( 1 << i ) & p ) > 0 )
{
sol = ( sol * a ) % mod ;
}
a = ( a * a ) % mod ;
}
printf("%d ",sol) ;
}