EnableExplicit Structure farey_struc complex.POINT quotient.d EndStructure #MAXORDER=1000 Global NewList fareylist.farey_struc() Define v_start.i, v_end.i, v_step.i, order.i, fractions.i, check.b, t$ Procedure farey(order) NewList sequence.farey_struc() Define quotient.d, divisor.i, dividend.i For divisor=1 To order For dividend=0 To divisor quotient.d=dividend/divisor AddElement(sequence()) sequence()\complex\x=dividend sequence()\complex\y=divisor sequence()\quotient=quotient Next Next SortStructuredList(sequence(),#PB_Sort_Ascending, OffsetOf(farey_struc\quotient), TypeOf(farey_struc\quotient)) FirstElement(sequence()) quotient=sequence()\quotient AddElement(fareylist()) fareylist()\complex\x=sequence()\complex\x fareylist()\complex\y=sequence()\complex\y fareylist()\quotient=sequence()\quotient ForEach sequence() If quotient=sequence()\quotient : Continue : EndIf quotient=sequence()\quotient AddElement(fareylist()) fareylist()\complex\x=sequence()\complex\x fareylist()\complex\y=sequence()\complex\y fareylist()\quotient=sequence()\quotient Next FreeList(sequence()) EndProcedure OpenConsole("Farey sequence [Input exit = program end]") Repeat Print("Input-> start end step [start>=1; end<=1000; step>=1; (start=1 And v_end<=#MAXORDER And v_step>=1 And v_start