package Ġad vent of code Ċ Ċ import Ġjava . math . BigInteger Ċ Ċ class ĠRe pe ating List ( val Ġrepeat Size : ĠInt Ġ= Ġ 1 0 0 , Ġval Ġskip First : ĠInt ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġlist : ĠMutable List < BigInteger > Ġ= Ġarray ListOf < BigInteger >() ĊĠĠĠ Ġprivate Ġval Ġdiff List Ġ= Ġarray ListOf < BigInteger >() ĊĊĠĠĠ Ġval Ġrepeat Ġ= Ġarray ListOf < BigInteger >() ĊĠĠĠ Ġprivate Ġvar Ġskipped : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġfun Ġadd ( num : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd ( num . to BigInteger ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd ( num : ĠBigInteger ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( skip First Ġ!= Ġnull Ġ&& Ġskipped Ġ< Ġskip First ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġskipped ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( repeat . isNotEmpty ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( list . size Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiff Ġ= Ġnum Ġ- Ġlist . last () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiff List . add ( diff ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlist . add ( num ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Repeat (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( repeat . isNotEmpty ()) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( list . size Ġ>= Ġrepeat Size Ġ* Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearch For Ġ= Ġlist . take Last ( repeat Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġouter @ for Ġ( i Ġin Ġ 0 Ġuntil Ġlist . size Ġ- Ġrepeat Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 Ġuntil Ġrepeat Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list [ i Ġ+ Ġj ] Ġ!= Ġsearch For [ j ]) Ġcontinue @ outer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat . addAll ( minimize Repeat List ( search For )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= Ġlist . sub List ( 0 , Ġi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġminimize Repeat List ( repeat : ĠList < BigInteger >): ĠList < BigInteger > Ġ{ ĊĠĠĠĠĠĠĠ Ġouter @ for Ġ( i Ġin Ġ 1 Ġuntil Ġrepeat Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist To Test Ġ= Ġrepeat . take ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġi Ġuntil Ġrepeat Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list To Test [ j Ġ% Ġi ] Ġ!= Ġrepeat [ j ]) Ġcontinue @ outer ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlist To Test ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprintln (" Could Ġnot Ġminimize Ġrepeat Ġlist , Ġthis Ġis Ġprobably Ġwrong ...") ĊĠĠĠĠĠĠĠ Ġreturn Ġrepeat ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetNum In Series ( num : ĠBigInteger ): ĠBigInteger Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Repeat () Ġ&& Ġnum . to Long () Ġ> Ġlist . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" C ant ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnum ToUse Ġ= Ġnum Ġ- Ġ( skip First ?. to BigInteger () Ġ?: ĠBigInteger . ZERO ) ĊĠĠĠĠĠĠĠ Ġif Ġ( num ToUse Ġ<= ĠBigInteger . ZERO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Invalid Ġnum ToUse ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( num ToUse . to Long () Ġ<= Ġlist . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlist [( num . to Long () Ġ- Ġ 1 ). toInt ()] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnum In Repeat Ġ= Ġ(( num ToUse Ġ- Ġlist . size . to BigInteger ()) Ġ% Ġrepeat . size . to BigInteger ()). toInt () ĊĠĠĠĠĠĠĠ Ġreturn Ġrepeat [ num In Repeat ] ĊĠĠĠ Ġ} Ċ } ĊĊ