package Ġnet . fw itz . math . num th . numbers Ċ Ċ import Ġjava . util .* Ċ import Ġkotlin . math . sqrt Ċ Ċ object ĠSmall Pri mes Ġ{ ĊĠĠĠ Ġconst Ġval ĠSMALL _ PR IME _ LIMIT Ġ= Ġ 1 0 0 0 ĊĠĠĠ Ġval ĠSMALL _ PR IM ES Ġ= Ġs ieve Small Pri mes () ĊĊĠĠĠ Ġoperator Ġfun Ġiterator () Ġ= ĠSMALL _ PR IM ES . iterator () ĊĊĠĠĠ Ġfun Ġstream () Ġ= ĠSMALL _ PR IM ES . stream ĊĊĊĠĠĠ Ġprivate Ġfun Ġs ieve Small Pri mes (): ĠInt Set Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpri mes Ġ= ĠBit Set ( SMALL _ PR IME _ LIMIT ) ĊĠĠĠĠĠĠĠ Ġval Ġsqrt Ġ= Ġsqrt ( SMALL _ PR IME _ LIMIT . toDouble ()). toInt () ĊĠĠĠĠĠĠĠ Ġpri mes . set ( 2 , ĠSMALL _ PR IME _ LIMIT ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġprime Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġprime Ġ+ Ġprime ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< ĠSMALL _ PR IME _ LIMIT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpri mes . clear ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ+= Ġprime ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprime Ġ= Ġpri mes . next Set Bit ( prime Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( prime Ġ!= Ġ- 1 Ġ&& Ġprime Ġ<= Ġsqrt ) ĊĠĠĠĠĠĠĠ Ġreturn ĠInt Set . bits ( pri mes , ĠSMALL _ PR IME _ LIMIT ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( SMALL _ PR IM ES ) ĊĠĠĠ Ġ} Ċ }