Taxicab numbers: Difference between revisions

m
m (→‎{{header|Sidef}}: updated code)
Line 2,506:
=={{header|Sidef}}==
{{trans|Perl 6}}
<lang ruby>var (start=1, end=25) = ARGV.map{.to_i}...;
 
 
func display (h, start, end) {
var i = start
for n in [h.grep { |_,v| v.len > 1 }.keys.sort_by{.to_i}.ft([start-1, .. end-1).each]] {|n|
printf("%4d  %10d =>\t%s\n", i++, n,
h{n}.map{ "%4d³ +  %-s" % (.first, "#{.last}³") }.join(",\t"))
}
}
 
 
var taxi = Hash()
var taxis = 0
var terminate = 0
 
 
for c1 (1..Inf) {
Inf.times { |c1|
if (terminate>0<terminate && terminate><c1) {
display(taxi, start, end)
break
}
var c = c1**3
c1for c2 (1.times.c1) { |c2|
var this = (c2**3 + c)
taxi{this}  := [] << [c2, c1]
++taxis if (taxi{this}.len == 2);
if (taxis == end && !terminate.is_zero) {
terminate = taxi.grep{|_,v| v.len > 1 }.keys.map{.to_i}.max.root(3)
}
2,756

edits