package Ġcn . an con o . math Ċ Ċ import Ġcn . an con o . math . geometry . an alytic . plane . P Vector Ċ import Ġcn . an con o . math . geometry . an alytic . plane . Point Ċ import Ġcn . an con o . math . geometry . an alytic . space . S Point Ċ import Ġcn . an con o . math . geometry . an alytic . space . S Vector Ċ import Ġcn . an con o . math . number Models . Complex D Ċ import Ġcn . an con o . math . number Models . Mult in omial Ċ import Ġcn . an con o . math . number Models . Term Ċ import Ġcn . an con o . math . number Models . structure . Complex Ċ import Ġcn . an con o . math . set . Math Set Ċ import Ġcn . an con o . math . set . Math Sets Ċ Ċ /* Ċ Ġ* ĠProvides Ġextension Ġmethods Ġfor Ġconvenience . Ċ Ġ*/ ĊĊ Ċ operator Ġfun ĠComplex D . times ( k : ĠDouble ): ĠComplex D Ġ= Ġthis . multiply ( k ) Ċ operator Ġfun ĠComplex D . div ( k : ĠDouble ): ĠComplex D Ġ= Ġthis . divide ( k ) Ċ operator Ġfun ĠComplex D . plus ( y : ĠDouble ): ĠComplex D Ġ= Ġthis . add ( Complex D . real ( y )) Ċ operator Ġfun ĠComplex D . minus ( y : ĠDouble ): ĠComplex D Ġ= Ġthis . subtract ( Complex D . real ( y )) Ċ Ċ operator Ġfun Ġ< T > ĠP Vector < T >. component 1 (): ĠT Ġ= Ġthis . x Ċ operator Ġfun Ġ< T > ĠP Vector < T >. component 2 (): ĠT Ġ= Ġthis . y Ċ Ċ operator Ġfun Ġ< T > ĠS Vector < T >. component 1 (): ĠT Ġ= Ġthis . x Ċ operator Ġfun Ġ< T > ĠS Vector < T >. component 2 (): ĠT Ġ= Ġthis . y Ċ operator Ġfun Ġ< T > ĠS Vector < T >. component 3 (): ĠT Ġ= Ġthis . z Ċ Ċ operator Ġfun Ġ< T > ĠPoint < T >. component 1 (): ĠT Ġ= Ġthis . x Ċ operator Ġfun Ġ< T > ĠPoint < T >. component 2 (): ĠT Ġ= Ġthis . y Ċ Ċ operator Ġfun Ġ< T > ĠS Point < T >. component 1 (): ĠT Ġ= Ġthis . x Ċ operator Ġfun Ġ< T > ĠS Point < T >. component 2 (): ĠT Ġ= Ġthis . y Ċ operator Ġfun Ġ< T > ĠS Point < T >. component 3 (): ĠT Ġ= Ġthis . z Ċ Ċ operator Ġfun Ġ< T > ĠComplex < T >. component 1 () Ġ= Ġthis . re () Ċ operator Ġfun Ġ< T > ĠComplex < T >. component 2 () Ġ= Ġthis . im () ĊĊ Ċ operator Ġfun ĠMult in omial . times ( y : ĠTerm ) Ġ= Ġthis . multiply ( y ) !! Ċ operator Ġfun ĠMult in omial . div ( y : ĠTerm ) Ġ= Ġthis . divide ( y ) !! ĊĊ Ċ operator Ġfun Ġ< T > ĠMath Set < T >. minus ( another : ĠMath Set < T >): ĠMath Set < T > Ġ= ĊĠĠĠĠĠĠĠ ĠMath Set Ġ{ Ġthis . contains ( it ) Ġ&& Ġ! another . contains ( it ) Ġ} Ċ Ċ infix Ġfun Ġ< T > ĠMath Set < T >. intersect ( another : ĠMath Set < T >): ĠMath Set < T > Ġ= ĠMath Sets . intersect Of ( this , Ġanother ) Ċ infix Ġfun Ġ< T > ĠMath Set < T >. and ( another : ĠMath Set < T >): ĠMath Set < T > Ġ= Ġthis Ġintersect Ġanother Ċ infix Ġfun Ġ< T > ĠMath Set < T >. union ( another : ĠMath Set < T >): ĠMath Set < T > Ġ= ĠMath Sets . union Of ( this , Ġanother ) Ċ infix Ġfun Ġ< T > ĠMath Set < T >. or ( another : ĠMath Set < T >): ĠMath Set < T > Ġ= Ġthis Ġunion Ġanother Ċ Ċ fun Ġ< T > ĠList < T >. exclude ( idx : ĠInt ): ĠList < T > Ġ{ ĊĠĠĠ Ġval Ġresult Ġ= ĠArrayList < T >( this . size Ġ- Ġ 1 ) ĊĠĠĠ Ġfor Ġ( n Ġin Ġ 0 Ġuntil Ġidx ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ+= Ġthis [ n ] ĊĠĠĠ Ġ} ĊĠĠĠ Ġfor Ġ( n Ġin Ġ( idx Ġ+ Ġ 1 ) Ġuntil Ġthis . size ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ+= Ġthis [ n ] ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ fun Ġ< T Ġ: ĠComparable < T >> ĠList < T >. is Sorted ( inverted Natural Order : ĠBoolean Ġ= Ġfalse ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( this . size Ġ< Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġfor Ġ( n Ġin Ġ 1 Ġuntil Ġsize ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( inverted Natural Order ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this [ n Ġ- Ġ 1 ] Ġ< Ġthis [ n ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this [ n Ġ- Ġ 1 ] Ġ> Ġthis [ n ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġtrue Ċ } ĊĊ Ċ // Ċ // fun Ġmain ( args : ĠArray < String >) Ġ{ Ċ // ĠĠĠ Ġval Ġmc Ġ= ĠFraction . calculator Ċ // ĠĠĠ Ġwith ( mc ){ Ċ // ĠĠĠĠĠĠĠ ĠFraction . ONE Ċ // ĠĠĠ Ġ} Ċ //} Ċ Ċ // fun Ġmain ( args : ĠArray < String >) Ġ{ Ċ //// ĠĠĠ Ġfor ( n Ġin Ġ 1 .. 1 0 0 0 0 ){ Ċ //// ĠĠĠĠĠĠĠ Ġprintln ( Math Utils . square Root Exact ( n . to Long ())) Ċ //// ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġval Ġsize Ġ= Ġ 1 0 _ 0 0 0 0 Ċ //// ĠĠĠ ĠPri mes . getInstance (). en large Prime ( 1 0 0 0 0 0 0 ) Ċ //// ĠĠĠ Ġval Ġmap Ġ= ĠTreeMap < Long , List < Int >>() Ċ // ĠĠĠ Ġ( 1 .. size ). as Sequence () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit Ġ-> Ġit Ġto ĠMath Utils . factor Sum ( it . to Long ()) Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. fold ( TreeMap < Long , ĠList < Int >> ()) Ġ{ Ġmap , Ġp Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCollection Sup . accum ulate Map ( map , Ġp . second , Ġp . first ) Ġ{ ĠArrayList () Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}. forEach Ġ{ Ġt , Ġu Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( u . size Ġ> Ġ 1 Ġ&& Ġu . all Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMath Utils . is Per fect Square ( it . to Long ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("$ t Ġ: Ġ${ u . join ToString ()} Ġ= Ġ${ u . map Ġ{ ĠMath Utils . sqrt Int L ( it . to Long ()). toInt () Ġ}. join ToString () }") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ //} Ċ