Created
April 21, 2021 15:00
-
-
Save telliott99/1d41015073e37a973afae4671b517007 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import math, operator | |
| N = 1000 | |
| R = range(2,N) | |
| D = dict() | |
| for x in R: | |
| D[x] = x**2 | |
| def is_square(x): | |
| sr = int(x**0.5) | |
| if sr**2 == x: | |
| return sr | |
| L = list() | |
| for i in R: | |
| for j in range(2,i): | |
| if not math.gcd(i,j) == 1: | |
| continue | |
| v = i**2 + j**2 | |
| result = is_square(v) | |
| if result: | |
| L.append((j,i,result)) | |
| #----------------------- | |
| def factors(x): | |
| rL = list() | |
| top = int(x**0.5) | |
| for i in range(1,top): | |
| if x % i == 0: | |
| j = x//i | |
| rL.append((i,j)) | |
| rL.append((top,x//top)) | |
| return rL | |
| def mn(t): | |
| a,b,c = t | |
| # make sure b is even | |
| if not b % 2 == 0: | |
| a,b = b,a | |
| p = b//2 | |
| fL = factors(p) | |
| #print(p,fL) | |
| for x,y in fL: | |
| diff = y**2 - x**2 | |
| # we may have switched a,b | |
| if a == diff: | |
| return (x,y) | |
| if b == diff: | |
| return (x,y) | |
| rL = list() | |
| for t in L: | |
| rL.append((mn(t),t)) | |
| rL.sort() | |
| for t in rL: | |
| print(t) | |
| ''' | |
| > p3 pyth.py | |
| ((1, 2), (3, 4, 5)) | |
| ((1, 4), (8, 15, 17)) | |
| ((1, 6), (12, 35, 37)) | |
| ((1, 8), (16, 63, 65)) | |
| ((1, 10), (20, 99, 101)) | |
| ((1, 12), (24, 143, 145)) | |
| ((1, 14), (28, 195, 197)) | |
| ((1, 16), (32, 255, 257)) | |
| ((1, 18), (36, 323, 325)) | |
| ((1, 20), (40, 399, 401)) | |
| ((1, 22), (44, 483, 485)) | |
| ((1, 24), (48, 575, 577)) | |
| ((1, 26), (52, 675, 677)) | |
| ((1, 28), (56, 783, 785)) | |
| ((1, 30), (60, 899, 901)) | |
| ((2, 3), (5, 12, 13)) | |
| ((2, 5), (20, 21, 29)) | |
| ((2, 7), (28, 45, 53)) | |
| ((2, 9), (36, 77, 85)) | |
| ((2, 11), (44, 117, 125)) | |
| ((2, 13), (52, 165, 173)) | |
| ((2, 15), (60, 221, 229)) | |
| ((2, 17), (68, 285, 293)) | |
| ((2, 19), (76, 357, 365)) | |
| ((2, 21), (84, 437, 445)) | |
| ((2, 23), (92, 525, 533)) | |
| ((2, 25), (100, 621, 629)) | |
| ((2, 27), (108, 725, 733)) | |
| ((2, 29), (116, 837, 845)) | |
| ((2, 31), (124, 957, 965)) | |
| ((3, 4), (7, 24, 25)) | |
| ((3, 8), (48, 55, 73)) | |
| ((3, 10), (60, 91, 109)) | |
| ((3, 14), (84, 187, 205)) | |
| ((3, 16), (96, 247, 265)) | |
| ((3, 20), (120, 391, 409)) | |
| ((3, 22), (132, 475, 493)) | |
| ((3, 26), (156, 667, 685)) | |
| ((3, 28), (168, 775, 793)) | |
| ((4, 5), (9, 40, 41)) | |
| ((4, 7), (33, 56, 65)) | |
| ((4, 9), (65, 72, 97)) | |
| ((4, 11), (88, 105, 137)) | |
| ((4, 13), (104, 153, 185)) | |
| ((4, 15), (120, 209, 241)) | |
| ((4, 17), (136, 273, 305)) | |
| ((4, 19), (152, 345, 377)) | |
| ((4, 21), (168, 425, 457)) | |
| ((4, 23), (184, 513, 545)) | |
| ((4, 25), (200, 609, 641)) | |
| ((4, 27), (216, 713, 745)) | |
| ((4, 29), (232, 825, 857)) | |
| ((4, 31), (248, 945, 977)) | |
| ((5, 6), (11, 60, 61)) | |
| ((5, 8), (39, 80, 89)) | |
| ((5, 12), (119, 120, 169)) | |
| ((5, 14), (140, 171, 221)) | |
| ((5, 16), (160, 231, 281)) | |
| ((5, 18), (180, 299, 349)) | |
| ((5, 22), (220, 459, 509)) | |
| ((5, 24), (240, 551, 601)) | |
| ((5, 26), (260, 651, 701)) | |
| ((5, 28), (280, 759, 809)) | |
| ((5, 32), (320, 999, 1049)) | |
| ((6, 7), (13, 84, 85)) | |
| ((6, 11), (85, 132, 157)) | |
| ((6, 13), (133, 156, 205)) | |
| ((6, 17), (204, 253, 325)) | |
| ((6, 19), (228, 325, 397)) | |
| ((6, 23), (276, 493, 565)) | |
| ((6, 25), (300, 589, 661)) | |
| ((6, 29), (348, 805, 877)) | |
| ((6, 31), (372, 925, 997)) | |
| ((7, 8), (15, 112, 113)) | |
| ((7, 10), (51, 140, 149)) | |
| ((7, 12), (95, 168, 193)) | |
| ((7, 16), (207, 224, 305)) | |
| ((7, 18), (252, 275, 373)) | |
| ((7, 20), (280, 351, 449)) | |
| ((7, 22), (308, 435, 533)) | |
| ((7, 24), (336, 527, 625)) | |
| ((7, 26), (364, 627, 725)) | |
| ((7, 30), (420, 851, 949)) | |
| ((7, 32), (448, 975, 1073)) | |
| ((8, 9), (17, 144, 145)) | |
| ((8, 11), (57, 176, 185)) | |
| ((8, 13), (105, 208, 233)) | |
| ((8, 15), (161, 240, 289)) | |
| ((8, 17), (225, 272, 353)) | |
| ((8, 19), (297, 304, 425)) | |
| ((8, 21), (336, 377, 505)) | |
| ((8, 23), (368, 465, 593)) | |
| ((8, 25), (400, 561, 689)) | |
| ((8, 27), (432, 665, 793)) | |
| ((8, 29), (464, 777, 905)) | |
| ((8, 31), (496, 897, 1025)) | |
| ((9, 10), (19, 180, 181)) | |
| ((9, 14), (115, 252, 277)) | |
| ((9, 16), (175, 288, 337)) | |
| ((9, 20), (319, 360, 481)) | |
| ((9, 22), (396, 403, 565)) | |
| ((9, 26), (468, 595, 757)) | |
| ((9, 28), (504, 703, 865)) | |
| ((9, 32), (576, 943, 1105)) | |
| ((10, 11), (21, 220, 221)) | |
| ((10, 13), (69, 260, 269)) | |
| ((10, 17), (189, 340, 389)) | |
| ((10, 19), (261, 380, 461)) | |
| ((10, 21), (341, 420, 541)) | |
| ((10, 23), (429, 460, 629)) | |
| ((10, 27), (540, 629, 829)) | |
| ((10, 29), (580, 741, 941)) | |
| ((10, 31), (620, 861, 1061)) | |
| ((10, 33), (660, 989, 1189)) | |
| ((11, 12), (23, 264, 265)) | |
| ((11, 14), (75, 308, 317)) | |
| ((11, 16), (135, 352, 377)) | |
| ((11, 18), (203, 396, 445)) | |
| ((11, 20), (279, 440, 521)) | |
| ((11, 24), (455, 528, 697)) | |
| ((11, 26), (555, 572, 797)) | |
| ((11, 28), (616, 663, 905)) | |
| ((11, 30), (660, 779, 1021)) | |
| ((11, 32), (704, 903, 1145)) | |
| ((12, 13), (25, 312, 313)) | |
| ((12, 17), (145, 408, 433)) | |
| ((12, 19), (217, 456, 505)) | |
| ((12, 23), (385, 552, 673)) | |
| ((12, 25), (481, 600, 769)) | |
| ((12, 29), (696, 697, 985)) | |
| ((12, 31), (744, 817, 1105)) | |
| ((13, 14), (27, 364, 365)) | |
| ((13, 16), (87, 416, 425)) | |
| ((13, 18), (155, 468, 493)) | |
| ((13, 20), (231, 520, 569)) | |
| ((13, 22), (315, 572, 653)) | |
| ((13, 24), (407, 624, 745)) | |
| ((13, 28), (615, 728, 953)) | |
| ((13, 30), (731, 780, 1069)) | |
| ((13, 32), (832, 855, 1193)) | |
| ((13, 34), (884, 987, 1325)) | |
| ((14, 15), (29, 420, 421)) | |
| ((14, 17), (93, 476, 485)) | |
| ((14, 19), (165, 532, 557)) | |
| ((14, 23), (333, 644, 725)) | |
| ((14, 25), (429, 700, 821)) | |
| ((14, 27), (533, 756, 925)) | |
| ((14, 29), (645, 812, 1037)) | |
| ((14, 31), (765, 868, 1157)) | |
| ((14, 33), (893, 924, 1285)) | |
| ((15, 16), (31, 480, 481)) | |
| ((15, 22), (259, 660, 709)) | |
| ((15, 26), (451, 780, 901)) | |
| ((15, 28), (559, 840, 1009)) | |
| ((15, 32), (799, 960, 1249)) | |
| ((16, 17), (33, 544, 545)) | |
| ((16, 19), (105, 608, 617)) | |
| ((16, 21), (185, 672, 697)) | |
| ((16, 23), (273, 736, 785)) | |
| ((16, 25), (369, 800, 881)) | |
| ((16, 27), (473, 864, 985)) | |
| ((16, 29), (585, 928, 1097)) | |
| ((16, 31), (705, 992, 1217)) | |
| ((17, 18), (35, 612, 613)) | |
| ((17, 20), (111, 680, 689)) | |
| ((17, 22), (195, 748, 773)) | |
| ((17, 24), (287, 816, 865)) | |
| ((17, 26), (387, 884, 965)) | |
| ((17, 28), (495, 952, 1073)) | |
| ((18, 19), (37, 684, 685)) | |
| ((18, 23), (205, 828, 853)) | |
| ((18, 25), (301, 900, 949)) | |
| ((19, 20), (39, 760, 761)) | |
| ((19, 22), (123, 836, 845)) | |
| ((19, 24), (215, 912, 937)) | |
| ((19, 26), (315, 988, 1037)) | |
| ((20, 21), (41, 840, 841)) | |
| ((20, 23), (129, 920, 929)) | |
| ((21, 22), (43, 924, 925)) | |
| > | |
| ''' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment