HP Forums
Prime Factors - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: HP-41C Software Library (/forum-11.html)
+--- Thread: Prime Factors (/thread-3899.html)



Prime Factors - Dave Britten - 05-18-2015 06:10 PM

In an attempt to rival Doom for the largest number of systems to which it's been ported, here's the usual HP 67 "mod 30" prime factors program for the 41C/CV/CX.

Enter a positive integer, and XEQ FCTR. Press R/S to view each factor. Zero will be displayed when there are no more factors.

Note this is a pretty straight port, and hasn't been fancied up with any 41-specific capabilities (yet).

EDIT: Here's a slightly improved version with a couple optimizations, and multiplicity display for factors (e.g. 3^2, 7^3, etc).

Code:
01 LBL FCTR
02 CF 05
03 FIX 0
04 STO 00
05 SQRT
06 STO 01
07 0
08 STO 02
09 STO 03
10 2
11 XEQ 02
12 1
13 XEQ 02
14 2
15 XEQ 02
16 2
17 XEQ 02
18 RCL 00
19 1
20 X=Y?
21 GTO 09

22 LBL 01
23 4
24 XEQ 02
25 2
26 XEQ 02
27 4
28 XEQ 02
29 2
30 XEQ 02
31 4
32 XEQ 02
33 6
34 XEQ 02
35 2
36 XEQ 02
37 6
38 XEQ 02
39 RCL 00
40 1
41 X=Y?
42 GTO 09
43 RCL 01
44 RCL 02
45 X<=Y?
46 GTO 01
47 RCL 00
48 STO 02
49 0
50 XEQ 02
51 GTO 09

52 LBL 02
53 ST+ 02
54 RCL 00
55 RCL 02
56 MOD
57 X!=0?
58 GTO 05

59 LBL 03
60 RCL 02
61 ST/ 00
62 RCL 00
63 SQRT
64 STO 01
65 1
66 ST+ 03
67 SF 05
68 0
69 GTO 02

70 LBL 05
71 FC?C 05
72 RTN
73 RCL 03
74 RCL 02
75 CLA
76 ARCL X
77 |-^
78 ARCL Y
79 0
80 STO 03
81 PROMPT
82 RTN

83 LBL 09
84 CLX
85 RTN
86 END



RE: Prime Factors - Thomas Klemm - 05-18-2015 08:31 PM

(05-18-2015 06:10 PM)Dave Britten Wrote:  Note this is a pretty straight port, and hasn't been fancied up with any 41-specific capabilities (yet).

You might have a look at a program for the HP-42s which uses the same idea.

Cheers
Thomas


RE: Prime Factors - Dave Britten - 05-19-2015 02:58 AM

(05-18-2015 08:31 PM)Thomas Klemm Wrote:  
(05-18-2015 06:10 PM)Dave Britten Wrote:  Note this is a pretty straight port, and hasn't been fancied up with any 41-specific capabilities (yet).

You might have a look at a program for the HP-42s which uses the same idea.

Cheers
Thomas

Thanks Thomas. Clever use of t-copy there. I see a couple things that could be issues for a 41 port: the use of recall arithmetic, as mentioned in that thread, AIP, which requires the appropriate module or alternative code, and the alpha register being limited to 24 characters. I don't recall the 42S alpha limit, but I think I remember it being larger.

I changed my version a bit to display multiplicity of factors as they're found (3^2, 5^3, etc.) and also replaced the / FRC bits with MOD, which appears to be about 20% faster. I'll probably post the updated code tomorrow.