2015年8月23日日曜日

150823

Ruby


どの2つの和も立方数(4)

どの2つの和も立方数となるような異なる4個の自然数の組
のうちその和が最小となるものは
(1493580092, 2510949380, 7071213244, 51114333631)
である。
二番目に小さいのは
(11948640736, 20087595040, 56569705952, 408914669048)
である。
このことを以下のコードで確かめた。

=begin
どの2つの和も立方数となるような異なる4個の自然数の組を
(a, b, c, d)(ただし、a < b < c < d)とすると、
a + b = u^3,
a + c = v^3,
a + d = w^3,
b + c = x^3,
b + d = y^3,
c + d = z^3
とおける。
a, b, c, dの大小関係より、
u < v < x, w < y < z,
u < z, v < y
が成立。
また、
u^3 + z^3 = v^3 + y^3 = w^3 + x^3 (= a + b + c + d)
a = ((u^3 + v^3 + w^3) - (a + b + c + d)) / 2
が成立。
=end

# a + b + c + dの候補
N = 7750
h = {}
(1..N - 1).each{|i|
  (i + 1..N).each{|j|
    c = i * i * i + j * j * j
    h.key?(c) ? h[c] = h[c].push([i, j]) : h[c] = [[i, j]]
  }
}

# 3通りで表せるもの
h3 = h.select{|k, v| v.size == 3}
p h3
h3.each{|i|
  j0 = i[1][0][0] ** 3 + i[1][1][0] ** 3 + i[1][2][0] ** 3 - i[0]
  if j0 > 0
    if j0 % 2 == 0
      a0 = j0 / 2
      p [a0, i[1][0][0] ** 3 - a0, i[1][1][0] ** 3 - a0, i[1][2][0] ** 3 - a0]
    end
  end
  j1 = i[1][0][0] ** 3 + i[1][1][0] ** 3 + i[1][2][1] ** 3 - i[0]
  if j1 > 0
    if j1 % 2 == 0
      a1 = j1 / 2
      p [a1, i[1][0][0] ** 3 - a1, i[1][1][0] ** 3 - a1, i[1][2][1] ** 3 - a1]
    end
  end
}
# 4通り以上で表せるものはN = 7750のときは存在しない
p h.select{|k, v| v.size > 3}

出力結果
{18778674824=>[[8, 2658], [575, 2649], [1899, 2285]], 1915865217=>[[9, 1242], [484, 1217], [969, 1002]], 119824488=>[[11, 493], [90, 492], [346, 428]], 804360375=>[[15, 930], [198, 927], [295, 920]], 150229398592=>[[16, 5316], [1150, 5298], [3798, 4570]], 15326921736=>[[18, 2484], [968, 2434], [1938, 2004]], 958595904=>[[22, 986], [180, 984], [692, 856]], 51728360859=>[[27, 3726], [1452, 3651], [2907, 3006]], 6434883000=>[[30, 1860], [396, 1854], [590, 1840]], 3235261176=>[[33, 1479], [270, 1476], [1038, 1284]], 53072642168=>[[36, 3758], [1454, 3684], [2543, 3321]], 122615373888=>[[36, 4968], [1936, 4868], [3876, 4008]], 7668767232=>[[44, 1972], [360, 1968], [1384, 1712]], 21717730125=>[[45, 2790], [594, 2781], [885, 2760]], 132651091125=>[[45, 5100], [2157, 4968], [3269, 4606]], 239483152125=>[[45, 6210], [2420, 6085], [4845, 5010]], 38786216625=>[[50, 3385], [1390, 3305], [1618, 3257]], 413826886872=>[[54, 7452], [2904, 7302], [5814, 6012]], 14978061000=>[[55, 2465], [450, 2460], [1730, 2140]], 51479064000=>[[60, 3720], [792, 3708], [1180, 3680]], 25882089408=>[[66, 2958], [540, 2952], [2076, 2568]], 175959000=>[[70, 560], [198, 552], [315, 525]], 424581137344=>[[72, 7516], [2908, 7368], [5086, 6642]], 100545046875=>[[75, 4650], [990, 4635], [1475, 4600]], 41099799384=>[[77, 3451], [630, 3444], [2422, 2996]], 3080802816=>[[81, 1455], [456, 1440], [904, 1328]], 61350137856=>[[88, 3944], [720, 3936], [2768, 3424]], 173741841000=>[[90, 5580], [1188, 5562], [1770, 5520]], 87352051752=>[[99, 4437], [810, 4428], [3114, 3852]], 310289733000=>[[100, 6770], [2780, 6610], [3236, 6514]], 275895608625=>[[105, 6510], [1386, 6489], [2065, 6440]], 119824488000=>[[110, 4930], [900, 4920], [3460, 4280]], 143604279=>[[111, 522], [359, 460], [408, 423]], 3499524728=>[[116, 1518], [350, 1512], [1169, 1239]], 411832512000=>[[120, 7440], [1584, 7416], [2360, 7360]], 159486393528=>[[121, 5423], [990, 5412], [3806, 4708]], 104622178752=>[[124, 4712], [928, 4700], [1271, 4681]], 122026235968=>[[132, 4960], [873, 4951], [3720, 4132]], 207056715264=>[[132, 5916], [1080, 5904], [4152, 5136]], 1407672000=>[[140, 1120], [396, 1104], [630, 1050]], 263254400136=>[[143, 6409], [1170, 6396], [4498, 5564]], 21303180171=>[[147, 2772], [1107, 2712], [1666, 2555]], 328798395072=>[[154, 6902], [1260, 6888], [4844, 5992]], 24646422528=>[[162, 2910], [912, 2880], [1808, 2656]], 381240326376=>[[165, 7251], [2768, 7114], [5376, 6090]], 404407647000=>[[165, 7395], [1350, 7380], [5190, 6420]], 87539319=>[[167, 436], [228, 423], [255, 414]], 300634478586=>[[183, 6699], [1555, 6671], [5009, 5593]], 5544709352=>[[207, 1769], [842, 1704], [1076, 1626]], 4750893000=>[[210, 1680], [594, 1656], [945, 1575]], 10499580728=>[[219, 2189], [1262, 2040], [1604, 1854]], 1148834232=>[[222, 1044], [718, 920], [816, 846]], 1840667192=>[[225, 1223], [372, 1214], [681, 1151]], 27996197824=>[[232, 3036], [700, 3024], [2338, 2478]], 83181676032=>[[243, 4365], [1368, 4320], [2712, 3984]], 11261376000=>[[280, 2240], [792, 2208], [1260, 2100]], 319616506125=>[[288, 6837], [1046, 6829], [5085, 5730]], 170425441368=>[[294, 5544], [2214, 5424], [3332, 5110]], 327763000=>[[300, 670], [339, 661], [510, 580]], 197171380224=>[[324, 5820], [1824, 5760], [3616, 5312]], 3877315533=>[[333, 1566], [1077, 1380], [1224, 1269]], 700314552=>[[334, 872], [456, 846], [510, 828]], 3623721192=>[[348, 1530], [761, 1471], [1098, 1320]], 94487167656=>[[348, 4554], [1050, 4536], [3507, 3717]], 21994875000=>[[350, 2800], [990, 2760], [1575, 2625]], 21989186856=>[[393, 2799], [1392, 2682], [2186, 2260]], 439386172407=>[[399, 7602], [743, 7600], [5799, 6252]], 385100352000=>[[405, 7275], [2280, 7200], [4520, 6640]], 44357674816=>[[414, 3538], [1684, 3408], [2152, 3252]], 26059452841=>[[417, 2962], [1290, 2881], [2193, 2494]], 38007144000=>[[420, 3360], [1188, 3312], [1890, 3150]], 10458523413=>[[438, 2181], [1058, 2101], [1269, 2034]], 83996645824=>[[438, 4378], [2524, 4080], [3208, 3708]], 9190673856=>[[444, 2088], [1436, 1840], [1632, 1692]], 239226670592=>[[449, 6207], [4076, 5556], [4800, 5048]], 14725337536=>[[450, 2446], [744, 2428], [1362, 2302]], 223969582592=>[[464, 6072], [1400, 6048], [4676, 4956]], 60353937000=>[[490, 3920], [1386, 3864], [2205, 3675]], 2363561613=>[[501, 1308], [684, 1269], [765, 1242]], 15170835645=>[[517, 2468], [709, 2456], [1733, 2152]], 17950534875=>[[555, 2610], [1795, 2300], [2040, 2115]], 106872501519=>[[558, 4743], [2487, 4506], [3751, 3782]], 90091008000=>[[560, 4480], [1584, 4416], [2520, 4200]], 119068866189=>[[576, 4917], [821, 4912], [3573, 4188]], 437440591000=>[[580, 7590], [1750, 7560], [5845, 6195]], 2622104000=>[[600, 1340], [678, 1322], [1020, 1160]], 142220774241=>[[612, 5217], [3084, 4833], [3410, 4681]], 210662877789=>[[613, 5948], [3645, 5454], [4482, 4941]], 149707152504=>[[621, 5307], [2526, 5112], [3228, 4878]], 128274111000=>[[630, 5040], [1782, 4968], [2835, 4725]], 283488679656=>[[657, 6567], [3786, 6120], [4812, 5562]], 31018524264=>[[666, 3132], [2154, 2760], [2448, 2538]], 5602516416=>[[668, 1744], [912, 1692], [1020, 1656]], 235645700472=>[[672, 6174], [3102, 5904], [4039, 5537]], 49698014184=>[[675, 3669], [1116, 3642], [2043, 3453]], 28989769536=>[[696, 3060], [1522, 2942], [2196, 2640]], 175959000000=>[[700, 5600], [1980, 5520], [3150, 5250]], 10833628897=>[[738, 2185], [988, 2145], [1326, 2041]], 38947913424=>[[738, 3378], [1115, 3349], [1974, 3150]], 109568696139=>[[750, 4779], [1363, 4748], [2154, 4635]], 234201429000=>[[770, 6160], [2178, 6072], [3465, 5775]], 49256267697=>[[777, 3654], [2513, 3220], [2856, 2961]], 175913494848=>[[786, 5598], [2784, 5364], [4372, 4520]], 257906381824=>[[807, 6361], [1812, 6316], [3400, 6024]], 354861398528=>[[828, 7076], [3368, 6816], [4304, 6504]], 208475622728=>[[834, 5924], [2580, 5762], [4386, 4988]], 10942414875=>[[835, 2180], [1140, 2115], [1275, 2070]], 304057152000=>[[840, 6720], [2376, 6624], [3780, 6300]], 83668187304=>[[876, 4362], [2116, 4202], [2538, 4068]], 73525390848=>[[888, 4176], [2872, 3680], [3264, 3384]], 8849601000=>[[900, 2010], [1017, 1983], [1530, 1740]], 117802700288=>[[900, 4892], [1488, 4856], [2724, 4604]], 243349354053=>[[900, 6237], [1309, 6224], [4893, 5016]], 189855538327=>[[903, 5740], [1359, 5722], [3591, 5236]], 386581923000=>[[910, 7280], [2574, 7176], [4095, 6825]], 177853640328=>[[937, 5615], [3554, 5104], [4050, 4812]], 266927432616=>[[985, 6431], [4056, 5850], [4394, 5668]], 149498759592=>[[986, 5296], [1626, 5256], [3867, 4509]], 56065076613=>[[992, 3805], [1548, 3741], [2742, 3285]], 104687519391=>[[999, 4698], [3231, 4140], [3672, 3807]], 18908492904=>[[1002, 2616], [1368, 2538], [1530, 2484]], 121366685160=>[[1034, 4936], [1418, 4912], [3466, 4304]], 97840472184=>[[1044, 4590], [2283, 4413], [3294, 3960]], 160780814649=>[[1065, 5424], [3382, 4961], [3828, 4713]], 143604279000=>[[1110, 5220], [3590, 4600], [4080, 4230]], 230083399000=>[[1125, 6115], [1860, 6070], [3405, 5755]], 30025986417=>[[1169, 3052], [1596, 2961], [1785, 2898]], 20976832000=>[[1200, 2680], [1356, 2644], [2040, 2320]], 191137295349=>[[1221, 5742], [3949, 5060], [4488, 4653]], 282380132151=>[[1314, 6543], [3174, 6303], [3807, 6102]], 248148194112=>[[1332, 6264], [4308, 5520], [4896, 5076]], 44820131328=>[[1336, 3488], [1824, 3384], [2040, 3312]], 397584113472=>[[1350, 7338], [2232, 7284], [4086, 6906]], 231918156288=>[[1392, 6120], [3044, 5884], [4392, 5280]], 247620672000=>[[1425, 6255], [2640, 6120], [2944, 6056]], 315498600963=>[[1443, 6786], [4667, 5980], [5304, 5499]], 86669031176=>[[1476, 4370], [1976, 4290], [2652, 4082]], 311583307392=>[[1476, 6756], [2230, 6698], [3948, 6300]], 40970375000=>[[1500, 3350], [1695, 3305], [2550, 2900]], 63816163551=>[[1503, 3924], [2052, 3807], [2295, 3726]], 409612562415=>[[1551, 7404], [2127, 7368], [5199, 6456]], 394050141576=>[[1554, 7308], [5026, 6440], [5712, 5922]], 62190076347=>[[1588, 3875], [2046, 3771], [2124, 3747]], 87539319000=>[[1670, 4360], [2280, 4230], [2550, 4140]], 452965149000=>[[1740, 7650], [3805, 7355], [5490, 6600]], 208438080643=>[[1782, 5875], [3768, 5371], [4174, 5139]], 70796808000=>[[1800, 4020], [2034, 3966], [3060, 3480]], 116514833589=>[[1837, 4796], [2508, 4653], [2805, 4554]], 191450482496=>[[1925, 5691], [2934, 5498], [4032, 5012]], 448520612904=>[[1984, 7610], [3096, 7482], [5484, 6570]], 320465258659=>[[1986, 6787], [2395, 6744], [5230, 5619]], 151267943232=>[[2004, 5232], [2736, 5076], [3060, 4968]], 112422709000=>[[2100, 4690], [2373, 4627], [3570, 4060]], 330175414296=>[[2166, 6840], [2943, 6729], [4294, 6308]], 192323883843=>[[2171, 5668], [2964, 5499], [3315, 5382]], 292507980219=>[[2214, 6555], [2964, 6435], [3978, 6123]], 472233009528=>[[2228, 7726], [2820, 7662], [5583, 6681]], 240207891336=>[[2338, 6104], [3192, 5922], [3570, 5796]], 474894161469=>[[2373, 7728], [2621, 7702], [5964, 6405]], 167814656000=>[[2400, 5360], [2712, 5288], [4080, 4640]], 237565962991=>[[2503, 6054], [3556, 5775], [4431, 5320]], 295445201625=>[[2505, 6540], [3420, 6345], [3825, 6210]], 184877417088=>[[2541, 5523], [3028, 5396], [3954, 4974]], 358561050624=>[[2672, 6976], [3648, 6768], [4080, 6624]], 238939227000=>[[2700, 6030], [3051, 5949], [4590, 5220]], 360113256776=>[[2818, 6964], [3970, 6676], [4801, 6295]], 430080674247=>[[2839, 7412], [3876, 7191], [4335, 7038]], 327763000000=>[[3000, 6700], [3390, 6610], [5100, 5800]], 497520610776=>[[3176, 7750], [4092, 7542], [4248, 7494]], 436252553000=>[[3300, 7370], [3729, 7271], [5610, 6380]]}
[1493580092, 2510949380, 7071213244, 51114333631]
[11948640736, 20087595040, 56569705952, 408914669048]
{}

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。