(35S) Number Theory Library - Gerald H - 06-26-2015 02:58 PM
Edit 2015-12-14: Changed line 343 of programme.
Edit: Corrected description of PPT.
A suite of number theory programmes - I've tried to include everything I find essential.
If you think something is missing please make suggestions.
Improvements very welcome.
Entry points:
ADD MOD 511
A, B, MOD -> A+B mod MOD
SUB MOD 519
A, B, MOD -> A-B mod MOD
MULT MOD 525
A, B, MOD -> A*B mod MOD
DIV MOD 528
A, B, MOD -> A/B mod MOD
BEZO 208
A, B -> gcd(A,B), C, D where A*C+B*D=gcd((A,B)
FIBO 849
A -> FNUMBER
CRT 600
A, B, C, D -> E, B*D where E satisfies E mod B=A & E mod D=C, B & D co-prime.
PRIME? 148
A -> 0 OR 1 as A is composite or probably prime.
CORNACCHIA 531
A, PRIME -> [B,C] such that B^2+A*C^2=PRIME or 0 if there is no solution.
NEXT CORN 768
E, PRIME -> [B,C], A, B & C as above, A the smallest integer > E so above equation has a solution.
√MOD 420
A, B -> C, C=√A modulo B or 0 if no solution.
PELL 621
A, 1 or 0 -> [B,C,1 or -1] or 0.
For input A, 1 the B & C satisfy B^2-A*C^2=1;
for input A, 0 the B & C satisfy B^2-A*C^2=-1 & if no solution 0 is returned.
PWR MOD 035
A, B, MOD -> A^B mod MOD
INV MOD 237
A, MOD -> A^-1 mod MOD or 0 if no solution.
NEXT PRIME 161
A -> nextprime(A) if A positive, prevprime(A) if A negative.
PPT 301
A -> prime or 0 as A is a prime power or not.
#PQARTS 665
A, 0 or 1 -> B, for 0 B is number of integer partitions, for 1 the number of integer partitions in distinct parts.
KRONECKER 340
A, B -> 1 or -1 or 0, Kron(A/B)
RABIN? 571
A, B -> 0 or 1, 1 if A is a strong pseudo-prime base B, 0 if not.
SPLIT 565
COMPOSITE -> FACTOR
MODF CORNA 780
A, PRIME -> [B,C] such that B^2+A*C^2=4*PRIME or 0 if there is no solution.
NEXT M CORN 829
E, PRIME -> [B,C], A, B & C as above, A the smallest integer > E so above equation has a solution.
PFOR 575
A -> B, B an A-digit prime.
COMP# 581
A -> B*C, B & C are A-digit primes.
ALL FACS 590
COMPOSITE -> A, B where COMPOSITE= A*B. Pressing R/S then factorises A etc until 1 appears.
RANDOM# 000
No input, produces a random integer.
Code:
1 LBL Z
2 12
3 10^x
4 RANDOM
5 *
6 IP
7 RTN
8 REGX
9 1,000,000
10 RMDR
11 STO Z
12 -
13 ENTER
14 x^2
15 RCL B
16 RMDR
17 x<>y
18 RCL*Z
19 RCL A
20 RMDR
21 ENTER
22 RCL- A
23 +
24 RCL A
25 RMDR
26 +
27 RCL B
28 RMDR
29 RCL Z
30 x^2
31 +
32 RCL A
33 RMDR
34 RTN
35 XEQ Z506
36 R↓
37 STO M
38 R↓
39 STO N
40 1►R
41 RCL M
42 x≠0?
43 GTO Z047
44 RCL R
45 RTN
46 RCL M
47 2
48 RMDR
49 x≠0?
50 GTO Z057
51 2
52 STO/ M
53 RCL N
54 XEQ Z008
55 STO N
56 GTO Z046
57 STO- M
58 RCL N
59 XEQ Z264
60 GTO Z041
61 XEQ Z506
62 -1►I
63 +
64 0
65 CLx
66 2
67 /
68 ISG I
69 IP
70 REGX
71 2
72 RMDR
73 x=0?
74 GTO Z065
75 R↓
76 STO P
77 RTN
78 RCL P
79 XEQ Z037
80 1
81 x=y?
82 RTN
83 +/-
84 RCL+ A
85 x=y?
86 RTN
87 CLx
88 RCL I
89 x=0?
90 RTN
91 CLx
92 A-1
93 x<>y
94 XEQ Z008
95 x=y?
96 RTN
97 REGX-1
98 x=0?
99 RTN
100 R↓
101 DSE I
102 GTO Z094
103 0
104 RTN
105 XEQ Z062
106 A-3
107 XEQ Z004
108 2
109 +
110 XEQ Z078
111 SGN
112 RCL A
113 x<>y
114 RTN
115 XEQ Z506
116 4
117 x>y?
118 RTN
119 CLx
120 2
121 RMDR
122 x=0?
123 RTN
124 SQRT(A)
125 FP
126 x=0?
127 RTN
128 LASTx
129 IP
130 199
131 x>y?
132 x<>y
133 1000
134 /
135 3.00002
136 +
137 STO I
138 RCL A
139 RCL I
140 IP
141 RMDR
142 x=0?
143 RTN
144 ISG I
145 GTO Z138
146 1►C
147 RTN
148 ABS
149 XEQ Z115
150 RCL A
151 x<>y
152 x=0?
153 RTN
154 CLx
155 47053
156 x<>y
157 x>=y?
158 GTO Z105
159 1
160 RTN
161 IP
162 RMDR(REGX,2)+REGX-1►T
163 2+T►T
164 XEQ Z148
165 x=0?
166 GTO Z163
167 R↓
168 RTN
169 RMDR
170 LASTx
171 x<>y
172 x≠0?
173 GTO Z169
174 R↓
175 ABS
176 RTN
177 CLx
178 RCL A
179 x<>y
180 x≠y?
181 RTN
182 C+1►C
183 1►U►V
184 IP(RAND*A)
185 STO X
186 XEQ Z008
187 RCL+ C
188 ENTER
189 RCL- X
190 RCL A
191 XEQ Z169
192 1
193 x≠y?
194 GTO Z177
195 R↓
196 R↓
197 DSE U
198 GTO Z186
199 2*V►V►U
200 R↓
201 XEQ Z008
202 RCL+ C
203 DSE U
204 GTO Z201
205 V►U
206 R↓
207 GTO Z185
208 STO G
209 1►E►F-1►C►D
210 R↓
211 REGY
212 REGY
213 INT/
214 +/-
215 ENTER
216 RCL* D
217 RCL+ E
218 x<> D
219 STO E
220 R↓
221 ENTER
222 RCL* F
223 RCL+ C
224 x<> F
225 STO C
226 R↓
227 REGY
228 *
229 REGZ
230 +
231 x≠0?
232 GTO Z211
233 R↓
234 RCL E
235 RCL C
236 RTN
237 XEQ Z208
238 R↓
239 REGY
240 *
241 REGY
242 ABS
243 1
244 -
245 x≠0?
246 GTO Z251
247 REGY
248 RCL G
249 RMDR
250 RTN
251 CLx
252 RTN
253 STO N
254 x<>y
255 STO R
256 R↓
257 RCL A
258 XEQ Z237
259 x=0?
260 RTN
261 RCL R
262 STO R
263 x<>y
264 REGX
265 1,000,000
266 RMDR
267 STO C
268 -
269 STO D
270 RCL R
271 REGX
272 1,000,000
273 RMDR
274 STO Z
275 -
276 STO Y
277 RCL* D
278 RCL B
279 RMDR
280 RCL Y
281 RCL* C
282 RCL A
283 RMDR
284 +
285 RCL B
286 RMDR
287 RCL D
288 RCL* Z
289 RCL A
290 RMDR
291 +
292 RCL B
293 RMDR
294 RCL Z
295 RCL* C
296 +
297 RCL A
298 RMDR
299 STO R
300 RTN
301 STO F
302 STO H
303 SGN
304 STO E
305 RCL F
306 STO G
307 SGN
308 STO+ E
309 RCL E
310 RCL F
311 ENTER
312 XEQ Z035
313 RCL- E
314 RCL F
315 XEQ Z169
316 STO F
317 1
318 -
319 x=0?
320 GTO Z338
321 RCL F
322 XEQ Z148
323 x=0?
324 GTO Z305
325 R↓
326 RCL G
327 ENTER
328 R↓
329 REGY
330 /
331 1
332 x<y?
333 GTO Z328
334 x≠y?
335 CLx
336 REGX*REGZ
337 RCL H
338 x<>y
339 RTN
340 STO E
341 x<>y
342 STO C
343 2*(1►D)
344 RMDR
345 x<>y
346 x=0?
347 GTO Z414
348 LASTx
349 RMDR
350 +
351 x=0?
352 RTN
353 SGN
354 STO D
355 XEQ Z389
356 RCL C
357 x<> E
358 STO C
359 x>=0?
360 GTO Z367
361 ABS
362 STO C
363 RCL E
364 SGN
365 x<0?
366 STO* D
367 RCL E
368 x=0?
369 GTO Z414
370 XEQ Z389
371 RCL E
372 4
373 RMDR
374 RCL C
375 LASTx
376 RMDR
377 *
378 9
379 x=y?
380 -D►D
381 RCL E
382 ABS
383 ENTER
384 x<> C
385 x<>y
386 RMDR
387 STO E
388 GTO Z368
389 0
390 RCL E
391 2
392 RMDR
393 x≠0?
394 GTO Z400
395 2
396 STO/ E
397 REGZ
398 NOT
399 GTO Z390
400 R↓
401 x=0?
402 RTN
403 RCL C
404 8
405 RMDR
406 4
407 -
408 ABS
409 1
410 x=y?
411 +/-
412 STO* D
413 RTN
414 ABS(C)
415 1
416 x≠y?
417 CLx
418 RCL* D
419 RTN
420 XEQ Z506
421 RMDR
422 SQRT(REGX)
423 FP
424 x≠0?
425 GTO Z428
426 LASTx
427 RTN
428 x<>y
429 STO F
430 RCL A
431 XEQ Z340
432 0
433 x≥y?
434 RTN
435 RMDR(A,4)-(1►I)
436 x=0?
437 GTO Z441
438 RCL F
439 (A+1)/4
440 GTO Z037
441 CLx
442 STO G
443 A-1
444 REGX
445 2
446 RMDR
447 x≠0?
448 GTO Z456
449 R↓
450 LASTx
451 /
452 1
453 STO+ G
454 R↓
455 GTO Z444
456 R↓
457 STO H
458 1+I►I
459 RCL A
460 XEQ Z340
461 x>0?
462 GTO Z458
463 RCL I
464 RCL H
465 XEQ Z037
466 STO J
467 G►I
468 RCL F
469 (H-1)/2
470 XEQ Z037
471 STO E
472 RCL F
473 XEQ Z262
474 ENTER
475 x<> E
476 XEQ Z262
477 STO F
478 1
479 x=y?
480 GTO Z504
481 STO G
482 R↓
483 XEQ Z008
484 1
485 x=y?
486 GTO Z490
487 STO+ G
488 R↓
489 GTO Z483
490 RCL J
491 2^(I-G-1)
492 XEQ Z037
493 XEQ Z008
494 STO J
495 G►I
496 RCL E
497 RCL R
498 XEQ Z262
499 STO E
500 RCL F
501 RCL J
502 XEQ Z262
503 GTO Z477
504 RCL E
505 RTN
506 +/-
507 STO B
508 +/-
509 STO A
510 RTN
511 XEQ Z506
512 R↓
513 RCL B
514 RMDR
515 +
516 RCL A
517 RMDR
518 RTN
519 XEQ Z506
520 R↓
521 -
522 RCL A
523 RMDR
524 RTN
525 XEQ Z506
526 R↓
527 GTO Z262
528 XEQ Z506
529 R↓
530 GTO Z253
531 XEQ Z506
532 √x
533 IP
534 STO K
535 R↓
536 STO L
537 +/-
538 RCL A
539 XEQ Z421
540 x=0?
541 RTN
542 RCL A
543 x<>y
544 REGY-REGX
545 x>y?
546 x<>y
547 R↓
548 RCL K
549 x>=y?
550 GTO Z556
551 R↓
552 x<>y
553 REGY
554 RMDR
555 GTO Z548
556 R↓
557 SQRT((A-SQ(REGX))/L)
558 FP
559 x≠0?
560 GTO Z563
561 [REGY,LASTx]
562 RTN
563 CLx
564 RTN
565 XEQ Z115
566 x≠0?
567 GTO Z183
568 RCL A
569 LASTx
570 RTN
571 x<>y
572 XEQ Z061
573 x<>y
574 GTO Z110
575 XEQ Z003
576 999,999,999,989
577 x<=y?
578 RTN
579 R↓
580 GTO Z162 (corrected, was erroneously Z163, 2018-03-02)
581 6
582 x>y?
583 x<>y
584 STO G
585 XEQ Z575
586 x<> G
587 XEQ Z575
588 RCL* G
589 RTN
590 XEQ Z148
591 x≠0?
592 RTN
593 R↓
594 XEQ Z565
595 /
596 LASTx
597 STOP
598 R↓
599 GTO Z590
600 STO O
601 R↓
602 STO N
603 R↓
604 STO M
605 R↓
606 STO L
607 CLx
608 RCL M
609 XEQ Z208
610 RCL* N
611 RCL* M
612 x<>y
613 RCL* L
614 RCL* O
615 +
616 RCL M
617 RCL* O
618 RMDR
619 LASTx
620 RTN
621 STO K
622 1►F
623 (REGZ►A-SQ(IP(SQRT(A))►B►D►H))►I
624 x=0?
625 RTN
626 IDIV(2*B,I)►C►G*B+1►E
627 RCL I
628 1
629 x≠y?
630 GTO Z637
631 RCL K
632 x>0?
633 GTO Z662
634 RCL A
635 [D,F,-1]
636 RTN
637 0►J
638 NOT(J)►J
639 IP((A-SQ((C*I-H)►H))/I)►I
640 1
641 x≠y?
642 GTO Z655
643 RCL K
644 x<0?
645 GTO Z650
646 RCL J
647 x≠0?
648 GTO Z662
649 GTO Z655
650 RCL J
651 x=0?
652 GTO Z662
653 0
654 RTN
655 IDIV(B+H,I)►C*E+D
656 x<>E
657 STO D
658 C*G+F
659 x<>G
660 STO F
661 GTO Z638
662 RCL A
663 [E,G,K]
664 RTN
665 x≠0?
666 GTO Z669
667 CF 0
668 GTO Z670
669 SF 0
670 RAD
671 2*REGY►K/2
672 24
673 1/x
674 FS? 0
675 +/-
676 -
677 STO G
678 FS? 0
679 GTO Z681
680 π*√(2/3)/G►I*(G^1.5►J) ►H
681 CLx
682 STO B
683 1►C
684 C►D
685 CLx
686 STO E
687 RCL C
688 RCL D
689 RMDR
690 LASTx
691 x<>y
692 x≠0?
693 GTO Z689
694 1
695 +
696 x≠y?
697 GTO Z721
698 +/-
699 RCL+ C
700 x=0?
701 GTO Z713
702 STO F
703 0
704 F/C
705 FP(REGX*D)-0.5
706 x<>y
707 0.5
708 -
709 *
710 +
711 DSE F
712 GTO Z704
713 0.25
714 +
715 K*D/C
716 -
717 π
718 *
719 COS
720 STO+ E
721 DSE D
722 GTO Z687
723 FS? 0
724 GTO Z737
725 EXP(H/C)
726 ENTER
727 1/x
728 (REGY+REGX)*I/C
729 (REGZ-REGY)/J
730 -
731 C+1►C-1
732 √x
733 *
734 π
735 4
736 GTO Z761
737 SQ(π/C)►L*G/12►D
738 SGN
739 ENTER
740 STO F
741 ENTER
742 R↓
743 x<> y
744 RCL* D
745 RCL/ F
746 RCL F
747 1
748 +
749 STO F
750 /
751 +
752 LASTx
753 x<>y
754 REGZ
755 x≠y?
756 GTO Z742
757 RCL* L
758 2
759 STO+ C
760 6
761 *
762 /
763 IP(REGX*E+B►B+0.5)
764 IP(REGY+B+0.5)
765 x≠y?
766 GTO Z684
767 RTN
768 XEQ Z506
769 R↓
770 STO U
771 RMDR(1+U,A)►U
772 RCL A
773 XEQ Z532
774 ABS
775 x=0?
776 GTO Z771
777 LASTx
778 RCL U
779 RTN
780 XEQ Z506
781 x<>y
782 +/-
783 x<>y
784 2
785 x≠y
786 GTO Z793
787 √(8+REGZ)
788 FP
789 x≠0?
790 GTO Z827
791 [LASTx,1]
792 RTN
793 R↓
794 x<>y
795 STO K
796 x<>y
797 XEQ Z421
798 x=0?
799 RTN
800 RMDR(REGX+K,2)
801 x=0?
802 GTO Z808
803 R↓
804 RCL A
805 x<>y
806 -
807 GTO Z809
808 R↓
809 2*A
810 x<>y
811 IP(2*SQRT(A))
812 x≥y?
813 GTO Z820
814 R↓
815 RMDR
816 LASTx
817 x<>y
818 R↑
819 GTO Z812
820 R↓
821 SQRT(ABS((4*A-SQ(REGX))/K))
822 FP
823 x≠0?
824 GTO Z827
825 [REGY,LASTx]
826 RTN
827 0
828 RTN
829 XEQ Z506
830 R↓
831 STO L
832 3-RMDR(L,4)
833 1
834 x<y?
835 x<>y
836 RCL+ L
837 4
838 RCL* A
839 RMDR
840 STO L
841 RCL A
842 XEQ Z781
843 ABS
844 x=0?
845 GTO Z832
846 LASTx
847 RCL L
848 RTN
849 IP(((1+√5)/2)^REGX/√5+.4)-IDIV(REGX,56)-2*(IDIV(REGX,58)+ IDIV(REGX,59))
850 RTN
RE: (35S) Number Theory Library - Gerald H - 03-02-2018 10:37 AM
Update: Error in PFOR entry corrected, line Z580.
RE: (35S) Number Theory Library - fred_76 - 02-13-2019 04:41 PM
Sorry for my noob question.
Problem : in line 92, what is "A-1" ? How do you get this ?
I can't find it on the manual...
RE: (35S) Number Theory Library - Gerald H - 02-15-2019 05:34 AM
Line 92 puts the value of variable "A" on the stack at level X & subtracts 1 from stack level X.
Enter the expression with keystrokes
EQN RCL A - 1 ENTER
RE: (35S) Number Theory Library - Dieter - 02-16-2019 05:05 PM
(02-15-2019 05:34 AM)Gerald H Wrote: Line 92 puts the value of variable "A" on the stack at level X & subtracts 1 from stack level X.
That's not quite right. First the expression is evaluated as a whole, then the result is moved to X (and the stack is pushed). So the equation first calculates A–1 and then it returns this value to the stack. The variable A alone is never moved to X. During the calculation the whole stack is not affected.
BTW, is there a special reason why the program uses so many equations? For instance what's the advantage of "-1►R" instead of -1 STO R, or "SQRT A" instead of RCL A √x? Especially as equations are rather slow.
Dieter
RE: (35S) Number Theory Library - Gerald H - 02-16-2019 06:49 PM
Thank you Dieter for correcting me.
Reason for using equations is to save lines, the published programme has 850, which still leaves a little room for development.
Further, some stack manipulations are more elegantly managed in an equation & the stack commands are not as inclusive as on the 42S.
RE: (35S) Number Theory Library - Gerald H - 02-17-2019 05:51 AM
The programme library has now been discussed here
http://www.hpmuseum.org/forum/thread-12406.html
Well worth reading, particulary for statistics concerning reliability of PRIME? calculation.
|