package Ġcom . cr az yle g end . kotlin extensions . data Structures And Algorithms . mat hematic s Ċ Ċ import Ġjava . math . BigInteger ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġh rist ij an Ġon Ġ 3 / 2 9 / 1 9 Ġto Ġlong Ġlive Ġand Ġpro sper Ġ! Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* ĠRe cursively Ġraises Ġa Ġnumber Ġto Ġa Ġcertain Ġpower . Ċ Ġ* ĠThis Ġmethod Ġreturns Ġthe Ġoriginal Ġnumber Ġis Ġpower Ġis Ġ 1 , Ġotherwise Ġmultip lies Ġthe Ġnumber Ġon Ġthe Ġresult Ġof Ġcalling Ġitself Ċ Ġ* Ġwith Ġdecrement ed Ġpower . Ċ Ġ* ĠThis Ġmeans Ġthat Ġthe Ġnumber Ġwill Ġbe Ġmultip lied Ġon Ġitself Ġ( the Ġoriginal ) Ġn Ġamount Ġof Ġtimes , Ġwhere Ġn Ġis Ġthe Ġpower . Ċ Ġ*/ Ċ fun Ġraise To Power ( num : ĠLong , Ġpow : ĠInt ): ĠLong Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( pow Ġ== Ġ 1 ) Ġnum ĊĠĠĠ Ġelse Ġraise To Power ( num , Ġpow Ġ- Ġ 1 ) Ġ* Ġnum Ċ } Ċ Ċ /** Ċ Ġ* ĠIter atively Ġraises Ġa Ġnumber Ġto Ġa Ġcertain Ġpower . Ċ Ġ* ĠFor Ġdescription Ġrefer Ġto Ġthe Ġmethod Ġabove . Ċ Ġ*/ Ċ fun Ġraise To Power Big ( num : ĠLong , Ġpow : ĠInt ): ĠBigInteger Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= ĠBigInteger . valueOf ( num ) ĊĠĠĠ Ġfor Ġ( i Ġin Ġpow Ġdown To Ġ 2 ) Ġresult Ġ*= ĠBigInteger . valueOf ( num ) ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ