23 lines
593 B
Text
23 lines
593 B
Text
val .farey = fn(.n) {
|
|
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 = impure fn() {
|
|
writeln "Farey sequence for orders 1 through 11"
|
|
for .i of 11 {
|
|
writeln $"\.i:2;: ", join " ", map(fn(.f) $"\.f[1];/\.f[2];", .farey(.i))
|
|
}
|
|
}
|
|
|
|
.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))
|
|
}
|