To find n^k,using brute force,

**ALGORITHM-**

Initialize result to 1.

Iterate from 1 to k and multiply n to result.

Return result.

**CODE-**

result=1;

for(i=1;i<=k;i++)

{

result=result*n;

}

Complexity for this code is O(k).

Its not only about coding for a given task but also making the code efficient in terms of space as well as time.The above code will take a lot of time for computation for larger values of k.

**Efficient code–**

Complexity for this code is O(log(k)).

**ALGORITHM-**

power (n,k)

{

if (k==0)

return 1;

if (k is even)

return (power(n,k/2) * power (n,k/2) );

else if (k is odd)

return (power (n,k/2) * power (n,k/2) * n );

}

**CODE-**

result=1;

while(k)

{

if(k%2!=0){result=result*n;}

n=n*n;

k=k/2;

}