HP Forums

Full Version: (42S) List Pythagorean Triples
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
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.
Reference URL's