package Ġle et code . kotlin . math Ċ Ċ private Ġfun Ġdivide ( divid end : ĠInt , Ġdivisor : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġif Ġ( divid end Ġ== ĠInt . MIN _ VALUE Ġ&& Ġdivisor Ġ== Ġ- 1 ) Ġreturn ĠInt . MAX _ VALUE ĊĠĠĠ Ġvar Ġa : ĠLong Ġ= ĠMath . abs ( divid end . to Long ()) ĊĠĠĠ Ġvar Ġb : ĠLong Ġ= ĠMath . abs ( div isor . to Long ()) ĊĠĠĠ Ġvar Ġsign Ġ= Ġ( if Ġ( divid end Ġ< Ġ 0 ) Ġ- 1 Ġelse Ġ 1 ) Ġ* Ġ( if Ġ( div isor Ġ< Ġ 0 ) Ġ- 1 Ġelse Ġ 1 ) ĊĠĠĠ Ġvar Ġcnt Ġ= Ġ 0 ĊĠĠĠ Ġwhile Ġ( a Ġ>= Ġb ) Ġ{ ĊĠĠĠĠĠĠĠ Ġa Ġ-= Ġb ĊĠĠĠĠĠĠĠ Ġcnt ++ ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġcnt Ġ* Ġsign Ċ } Ċ Ċ private Ġfun Ġdivide 2 ( divid end : ĠInt , Ġdivisor : ĠInt ): ĠInt Ġ{ ĊĠĠĠ Ġif Ġ( divid end Ġ== ĠInt . MIN _ VALUE Ġ&& Ġdivisor Ġ== Ġ- 1 ) Ġreturn ĠInt . MAX _ VALUE ĊĠĠĠ Ġvar Ġsign Ġ= Ġ( if Ġ( divid end Ġ< Ġ 0 ) Ġ- 1 Ġelse Ġ 1 ) Ġ* Ġ( if Ġ( div isor Ġ< Ġ 0 ) Ġ- 1 Ġelse Ġ 1 ) ĊĠĠĠ Ġvar Ġa : ĠLong Ġ= ĠMath . abs ( divid end . to Long ()) ĊĠĠĠ Ġvar Ġb : ĠLong Ġ= ĠMath . abs ( div isor . to Long ()) ĊĠĠĠ Ġvar Ġans Ġ= Ġ 0 ĊĠĠĠ Ġwhile Ġ( a Ġ>= Ġb ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġm Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġvar Ġtmp Ġ= Ġb ĊĠĠĠĠĠĠĠ Ġwhile Ġ( tmp . sh l ( 1 ) Ġ<= Ġb ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtmp Ġ= Ġtmp . sh l ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Ġ= Ġm . sh l ( 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġa Ġ-= Ġtmp ĊĠĠĠĠĠĠĠ Ġans Ġ+= Ġm ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġans Ġ* Ġsign Ċ } Ċ