Cod sursa(job #1601263)
Utilizator | Data | 15 februarie 2016 20:40:03 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 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);
long long 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("%lld ",sol) ;
}