def farey( n ) = res = seq() a, b, c, d = 0, 1, 1, n res += "$a/$b" while c <= n k = (n + b)\d a, b, c, d = c, d, k*c - a, k*d - b res += "$a/$b" for i <- 1..11 println( "$i: ${farey(i).mkString(', ')}" ) for i <- 100..1000 by 100 println( "$i: ${farey(i).length()}" )