Cod sursa(job #211852)
| Utilizator | Data | 3 octombrie 2008 18:58:14 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
//
#include<stdio.h>
int main()
{
//int N,P,n,n2;
long long N,P,n,n2;
int a[30],i,j;
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%lld%lld",&N,&P);
//scanf("%d%d",&N,&P);
n=N%1999999973;
j=0;
do
{
j=j+1;
a[j]=P%2;
P=P/2;
}while(P>0);
n2=n;
n=1;
for(i=1;i<=j;i++)
{
if(a[i]==1) n=(n*n2)%1999999973;
n2=(n2*n2)%1999999973;
}
printf("%lld",n);
//printf("%d",n);
return 0;
}
