class Integer def is_lcm?(other) self.lcm(other) == self and other != self end end a = "515 912 619 2043 96 93 2242 1385 2110 860 2255 621 1480 118 1230 99 161 6142 142 1742 237 6969 211 4314 5410 4413 3216 6330 261 3929 5552 109 1956 4470 3577 619 105 3996 128 1666 720 4052 108 132 2652 306 1892 1869 2163 99 2257 895 112 1771 1366 1631 2064 2146 103 865 123 1907 2362 876 1955 3260 1539 764 185 5493 5365 5483 4973 175 207 1538 4824 205 1784 2503 181 3328 2274 3798 1289 2772 4037 851 1722 3792 175 603 725 158 2937 174 405 247 2083 956 725 258 2044 206 2054 561 2223 2003 2500 355 306 2248 837 937 225 1115 446 451 160 1219 56 61 62 922 58 1228 1217 1302 1371 1062 2267 111 135 2113 1503 2130 1995 2191 129 2494 2220 739 138 1907 3892 148 2944 371 135 1525 3201 3506 3930 3207 115 3700 2791 597 3314 132 259 162 186 281 210 180 184 93 135 208 88 178 96 25 103 161 1080 247 1036 936 108 971 908 1035 123 974 103 1064 129 1189 1089 938 148 1874 122 702 922 2271 123 111 454 1872 2142 2378 126 813 1865 1506 842 267 230 1665 2274 236 262 1714 3281 4804 4404 3833 661 4248 3893 1105 1112 1260 809 72 1104 156 104 1253 793 462 608 84 99 1174 449 929 707 668 1778 1687 2073 1892 62 1139 908 78 1885 800 945 712 57 65" splitted = a.split("\n").map! {|i| i.split("\t").map(&:to_i)} puts splitted.reduce(0) {|sum, row| sum += row.max-row.min} result = 0 splitted.each do |row| row.permutation(2).to_a.find do |ele| if ele[0].is_lcm?(ele[1]) then result += ele[0] / ele[1] end end end puts result