package Ġkom u . ad vent of code . a oc 2 0 1 7 Ċ Ċ fun Ġdue ling Generators ( start A : ĠInt , Ġstart B : ĠInt , Ġrounds : ĠInt , Ġmultip les Of A : ĠInt Ġ= Ġ 1 , Ġmultip les Of B : ĠInt Ġ= Ġ 1 ) Ġ= ĊĠĠĠ Ġgenerator ( factor Ġ= Ġ 1 6 8 0 7 , Ġstart Ġ= Ġstart A , Ġmultiplier Ġ= Ġmultip les Of A ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. zip ( generator ( factor Ġ= Ġ 4 8 2 7 1 , Ġstart Ġ= Ġstart B , Ġmultiplier Ġ= Ġmultip les Of B )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. take ( rounds ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. count Ġ{ Ġ( a , Ġb ) Ġ-> Ġa . low Bits Ġ== Ġb . low Bits Ġ} Ċ Ċ private Ġfun Ġgenerator ( factor : ĠInt , Ġstart : ĠInt , Ġmultiplier : ĠInt Ġ= Ġ 1 ) Ġ= Ġsequence Ġ{ ĊĠĠĠ Ġvar Ġstate Ġ= Ġstart . to Long () ĊĊĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġ( state Ġ* Ġfactor ) Ġ% Ġ 2 1 4 7 4 8 3 6 4 7 ĊĊĠĠĠĠĠĠĠ Ġif Ġ( state . toInt () Ġ% Ġmultiplier Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġyield ( state . toInt ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġval ĠInt . low Bits Ġget () Ġ= Ġthis Ġand Ġ 6 5 5 3 5 Ċ