21 lines
533 B
Text
21 lines
533 B
Text
func triples(limit) {
|
||
var primitive = 0
|
||
var civilized = 0
|
||
|
||
func oyako(a, b, c) {
|
||
(var perim = a+b+c) > limit || (
|
||
primitive++
|
||
civilized += int(limit / perim)
|
||
oyako( a - 2*b + 2*c, 2*a - b + 2*c, 2*a - 2*b + 3*c)
|
||
oyako( a + 2*b + 2*c, 2*a + b + 2*c, 2*a + 2*b + 3*c)
|
||
oyako(-a + 2*b + 2*c, -2*a + b + 2*c, -2*a + 2*b + 3*c)
|
||
)
|
||
}
|
||
|
||
oyako(3,4,5)
|
||
"#{limit} => (#{primitive} #{civilized})"
|
||
}
|
||
|
||
for n (1..Inf) {
|
||
say triples(10**n)
|
||
}
|