23 lines
571 B
Text
23 lines
571 B
Text
val farey = fn(n number) {
|
|
var a, b, c, d = 0, 1, 1, n
|
|
while[=[[0, 1]]] c <= n {
|
|
val k = (n + b) // d
|
|
a, b, c, d = c, d, k * c - a, k * d - b
|
|
_while ~= [[a, b]]
|
|
}
|
|
}
|
|
|
|
val testFarey = fn*() {
|
|
writeln "Farey sequence for orders 1 through 11"
|
|
for i of 11 {
|
|
writeln "{{i:2}}: ", join(map(farey(i), by=fn(f) { "{{f[1]}}/{{f[2]}}" }), delim=" ")
|
|
}
|
|
}
|
|
|
|
testFarey()
|
|
|
|
writeln()
|
|
writeln "count of Farey sequence fractions for 100 to 1000 by hundreds"
|
|
for i = 100; i <= 1000; i += 100 {
|
|
writeln "{{i:4}}: ", len(farey(i))
|
|
}
|