Taxicab numbers: Difference between revisions

m (changed whitespace.)
Line 3,761:
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|Visual Basic .NET}}==
{{trans|C#}}
<lang vbnet>
Imports System.Text
 
Module Module1
 
Function GetTaxicabNumbers(length As Integer) As IDictionary(Of Long, IList(Of Tuple(Of Integer, Integer)))
Dim sumsOfTwoCubes As New SortedList(Of Long, IList(Of Tuple(Of Integer, Integer)))
 
For i = 1 To Integer.MaxValue - 1
For j = 1 To Integer.MaxValue - 1
Dim sum = CLng(Math.Pow(i, 3) + Math.Pow(j, 3))
 
If Not sumsOfTwoCubes.ContainsKey(sum) Then
sumsOfTwoCubes.Add(sum, New List(Of Tuple(Of Integer, Integer)))
End If
 
sumsOfTwoCubes(sum).Add(Tuple.Create(i, j))
 
If j >= i Then
Exit For
End If
Next
 
REM Found that you need to keep going for a while after the length, because higher i values fill in gaps
If sumsOfTwoCubes.AsEnumerable.Count(Function(t) t.Value.Count >= 2) >= length * 1.1 Then
Exit For
End If
Next
 
Dim values = (From t In sumsOfTwoCubes Where t.Value.Count >= 2 Select t) _
.Take(2006) _
.ToDictionary(Function(u) u.Key, Function(u) u.Value)
Return values
End Function
 
Sub PrintTaxicabNumbers(values As IDictionary(Of Long, IList(Of Tuple(Of Integer, Integer))))
Dim i = 1
For Each taxicabNumber In values.Keys
Dim output As New StringBuilder
output.AppendFormat("{0,10}" + vbTab + "{1,4}", i, taxicabNumber)
 
For Each numbers In values(taxicabNumber)
output.AppendFormat(vbTab + "= {0}^3 + {1}^3", numbers.Item1, numbers.Item2)
Next
 
If i <= 25 OrElse (i >= 2000 AndAlso i <= 2006) Then
Console.WriteLine(output.ToString)
End If
 
i += 1
Next
End Sub
 
Sub Main()
Dim taxicabNumbers = GetTaxicabNumbers(2006)
PrintTaxicabNumbers(taxicabNumbers)
End Sub
 
End Module</lang>
{{out}}
<pre> 1 1729 = 10^3 + 9^3 = 12^3 + 1^3
2 4104 = 15^3 + 9^3 = 16^3 + 2^3
3 13832 = 20^3 + 18^3 = 24^3 + 2^3
4 20683 = 24^3 + 19^3 = 27^3 + 10^3
5 32832 = 30^3 + 18^3 = 32^3 + 4^3
6 39312 = 33^3 + 15^3 = 34^3 + 2^3
7 40033 = 33^3 + 16^3 = 34^3 + 9^3
8 46683 = 30^3 + 27^3 = 36^3 + 3^3
9 64232 = 36^3 + 26^3 = 39^3 + 17^3
10 65728 = 33^3 + 31^3 = 40^3 + 12^3
11 110656 = 40^3 + 36^3 = 48^3 + 4^3
12 110808 = 45^3 + 27^3 = 48^3 + 6^3
13 134379 = 43^3 + 38^3 = 51^3 + 12^3
14 149389 = 50^3 + 29^3 = 53^3 + 8^3
15 165464 = 48^3 + 38^3 = 54^3 + 20^3
16 171288 = 54^3 + 24^3 = 55^3 + 17^3
17 195841 = 57^3 + 22^3 = 58^3 + 9^3
18 216027 = 59^3 + 22^3 = 60^3 + 3^3
19 216125 = 50^3 + 45^3 = 60^3 + 5^3
20 262656 = 60^3 + 36^3 = 64^3 + 8^3
21 314496 = 66^3 + 30^3 = 68^3 + 4^3
22 320264 = 66^3 + 32^3 = 68^3 + 18^3
23 327763 = 58^3 + 51^3 = 67^3 + 30^3
24 373464 = 60^3 + 54^3 = 72^3 + 6^3
25 402597 = 61^3 + 56^3 = 69^3 + 42^3
2000 1671816384 = 944^3 + 940^3 = 1168^3 + 428^3
2001 1672470592 = 1124^3 + 632^3 = 1187^3 + 29^3
2002 1673170856 = 1034^3 + 828^3 = 1164^3 + 458^3
2003 1675045225 = 1081^3 + 744^3 = 1153^3 + 522^3
2004 1675958167 = 1096^3 + 711^3 = 1159^3 + 492^3
2005 1676926719 = 1095^3 + 714^3 = 1188^3 + 63^3
2006 1677646971 = 990^3 + 891^3 = 1188^3 + 99^3</pre>
 
=={{header|Wren}}==
1,452

edits