(42S) List Pythagorean Triples
10-16-2019, 07:33 PM (This post was last modified: 10-17-2019 03:13 PM by ijabbott.)
Post: #1 ijabbott Senior Member Posts: 696 Joined: Jul 2015
(42S) List Pythagorean Triples
This program lists Pythagorean triples, (natural numbers $$a, b, c$$, such that $$a^2 + b^2 = c^2$$) as alpha strings on the display, starting with "3,4,5". They are not listed in any monotonic order, but successive hypotenuses are listed in a reverse sawtooth pattern.

The triples ($$a,b,c$$) are generated from pairs of natural numbers $$m$$, $$n$$, such that $$m > n > 0$$, and $$m$$ and $$n$$ are co-prime and not both odd (to filter out non-primitive triples such as 6,8,10), using Euclid's formula:

$a = m^2 - n^2, b = 2mn, c = m^2 + n^2$

The program uses registers R00 and R01 to store $$m$$ and $$n$$, and uses the ALPHA register to show the triple "$$a,b,c$$" (if $$a < b$$), or "$$b,a,c$$" (if $$a > b$$). The program stops after each triple is displayed. Press R/S to continue.

Code:
00 { 90-Byte Prgm } 01 LBL "PYTRP" 02 2 03 STO 00 04 LBL 00 05 RCL 00 06 1 07 - 08 STO 01 09 LBL 01 10 RCL 00 11 RCL 01 12 X≤0? 13 GTO 05 14 LBL 02 15 X=0? 16 GTO 03 17 MOD 18 LASTX 19 X<>Y 20 GTO 02 21 LBL 03 22 R↓ 23 1 24 X≠Y? 25 GTO 04 26 CLA 27 RCL 01 28 X^2 29 LASTX 30 RCL 00 31 X^2 32 LASTX 33 X<>Y 34 R↓ 35 × 36 ENTER 37 + 38 R↓ 39 + 40 LASTX 41 X<>Y 42 R↓ 43 - 44 X>Y? 45 X<>Y 46 AIP 47 ├"," 48 R↓ 49 AIP 50 ├"," 51 R↓ 52 AIP 53 AVIEW 54 STOP 55 LBL 04 56 2 57 STO- 01 58 GTO 01 59 LBL 05 60 1 61 STO+ 00 62 GTO 00 63 .END.

— Ian Abbott
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)