Taxicab numbers: Difference between revisions

Content added Content deleted
(→‎{{header|Haskell}}: pp^2 (more legible pretty-printing code))
m (→‎{{header|JavaScript}}: (normalised spacing in existing version))
Line 1,458: Line 1,458:
</pre>
</pre>
=={{header|JavaScript}}==
=={{header|JavaScript}}==
<lang JavaScript>var n3s=[], s3s={}
<lang JavaScript>var n3s = [],
s3s = {}
for (var n=1,e=1200; n<e; n+=1) n3s[n]=n*n*n
for (var a=1; a<e-1; a+=1) {
for (var n = 1, e = 1200; n < e; n += 1) n3s[n] = n * n * n
var a3 = n3s[a]
for (var a = 1; a < e - 1; a += 1) {
var a3 = n3s[a]
for (var b=a; b<e; b+=1) {
var b3 = n3s[b]
for (var b = a; b < e; b += 1) {
var s3 = a3+b3, abs = s3s[s3]
var b3 = n3s[b]
if (!abs) s3s[s3] = abs = []
var s3 = a3 + b3,
abs = s3s[s3]
abs.push([a,b])
if (!abs) s3s[s3] = abs = []
}
abs.push([a, b])
}
}
}


var i=0
var i = 0
for (var s3 in s3s) {
for (var s3 in s3s) {
var abs = s3s[s3]
var abs = s3s[s3]
if (abs.length < 2) continue
if (abs.length < 2) continue
i+=1
i += 1
if (abs.length == 2 && i > 25 && i < 2000) continue
if (abs.length == 2 && i > 25 && i < 2000) continue
if (i > 2006) break
if (i > 2006) break
document.write(i, ': ', s3)
document.write(i, ': ', s3)
for (var ab of abs) document.write( ' = ', ab[0], '<sup>3</sup>+', ab[1], '<sup>3</sup>')
for (var ab of abs) {
document.write('<br>')
document.write(' = ', ab[0], '<sup>3</sup>+', ab[1], '<sup>3</sup>')
}
document.write('<br>')
}</lang>
}</lang>
{{out}}
{{out}}