Taxicab numbers: Difference between revisions

Added Wren
(→‎{{header|Haskell}}: Data.Function (on) for simpler groupBy expression)
(Added Wren)
Line 3,477:
4162 7668767232 = 44^3 +1972^3 = 1384^3 +1712^3 360^3 +1968^3
4359 8849601000 = 1017^3 +1983^3 = 1530^3 +1740^3 900^3 +2010^3</pre>
 
=={{header|Wren}}==
{{libheader|Wren-sort}}
{{libheader|Wren-fmt}}
<lang ecmascript>import "/sort" for Sort
import "/fmt" for Fmt
 
var cubesSum = {}
var taxicabs = []
 
for (i in 1..1199) {
for (j in i+1..1200) {
var sum = i*i*i + j*j*j
if (!cubesSum[sum]) {
cubesSum[sum] = [i, j]
} else {
taxicabs.add([sum, cubesSum[sum], [i, j]])
}
}
}
var cmp = Fn.new { |a, b| (a[0] - b[0]).sign }
Sort.quick(taxicabs, 0, taxicabs.count-1, cmp)
// remove those numbers which have additional pairs of cubes
for (i in taxicabs.count-2..0) {
if (taxicabs[i][0] == taxicabs[i+1][0]) taxicabs.removeAt(i+1)
}
 
System.print("The first 25 taxicab numbers are:")
for (i in 1..25) {
var t = taxicabs[i-1]
Fmt.lprint("$2d: $,7d = $2d³ + $2d³ = $2d³ + $2d³", [i, t[0], t[1][0], t[1][1], t[2][0], t[2][1]])
}
 
System.print("\nThe 2,000th to 2,006th taxicab numbers are:")
for (i in 2000..2006) {
var t = taxicabs[i-1]
Fmt.lprint("$,5d: $,13d = $3d³ + $,5d³ = $3d³ + $,5d³", [i, t[0], t[1][0], t[1][1], t[2][0], t[2][1]])
}</lang>
 
{{out}}
<pre>
The first 25 taxicab numbers are:
1: 1,729 = 1³ + 12³ = 9³ + 10³
2: 4,104 = 2³ + 16³ = 9³ + 15³
3: 13,832 = 2³ + 24³ = 18³ + 20³
4: 20,683 = 10³ + 27³ = 19³ + 24³
5: 32,832 = 4³ + 32³ = 18³ + 30³
6: 39,312 = 2³ + 34³ = 15³ + 33³
7: 40,033 = 9³ + 34³ = 16³ + 33³
8: 46,683 = 3³ + 36³ = 27³ + 30³
9: 64,232 = 17³ + 39³ = 26³ + 36³
10: 65,728 = 12³ + 40³ = 31³ + 33³
11: 110,656 = 4³ + 48³ = 36³ + 40³
12: 110,808 = 6³ + 48³ = 27³ + 45³
13: 134,379 = 12³ + 51³ = 38³ + 43³
14: 149,389 = 8³ + 53³ = 29³ + 50³
15: 165,464 = 20³ + 54³ = 38³ + 48³
16: 171,288 = 17³ + 55³ = 24³ + 54³
17: 195,841 = 9³ + 58³ = 22³ + 57³
18: 216,027 = 3³ + 60³ = 22³ + 59³
19: 216,125 = 5³ + 60³ = 45³ + 50³
20: 262,656 = 8³ + 64³ = 36³ + 60³
21: 314,496 = 4³ + 68³ = 30³ + 66³
22: 320,264 = 18³ + 68³ = 32³ + 66³
23: 327,763 = 30³ + 67³ = 51³ + 58³
24: 373,464 = 6³ + 72³ = 54³ + 60³
25: 402,597 = 42³ + 69³ = 56³ + 61³
 
The 2,000th to 2,006th taxicab numbers are:
2,000: 1,671,816,384 = 428³ + 1,168³ = 940³ + 944³
2,001: 1,672,470,592 = 29³ + 1,187³ = 632³ + 1,124³
2,002: 1,673,170,856 = 458³ + 1,164³ = 828³ + 1,034³
2,003: 1,675,045,225 = 522³ + 1,153³ = 744³ + 1,081³
2,004: 1,675,958,167 = 492³ + 1,159³ = 711³ + 1,096³
2,005: 1,676,926,719 = 63³ + 1,188³ = 714³ + 1,095³
2,006: 1,677,646,971 = 99³ + 1,188³ = 891³ + 990³
</pre>
 
=={{header|zkl}}==
9,476

edits