Home » Archimedes archive » Acorn User » AU 1997-11 B.adf » Regulars » StarInfo/vanMourik/FACTORISE
StarInfo/vanMourik/FACTORISE
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
| Tape/disk: | Home » Archimedes archive » Acorn User » AU 1997-11 B.adf » Regulars |
| Filename: | StarInfo/vanMourik/FACTORISE |
| Read OK: | ✔ |
| File size: | 0B74 bytes |
| Load address: | 0000 |
| Exec address: | 0000 |
File contents
10REM >FACTORISE 20REM JEAN VAN MOURIK MILLCOTTAGE DERWYDD AMMANFORD DYFED SA183LQ UK. 30 40MODE12:PRINT"PRIMES SIEVE, FAST VERSION.":PRINT:ON ERROR GOTO 790 50PRINT"BY JEAN VAN MOURIK." 60PRINT"EACH MULTIPLE OF A PRIME IS ERASED FROM THE ARRAY." 70PRINT"THEN HARVESTS THE PRIMES FROM THAT ARRAY.":PRINT"THEN ALLOWS TO FIND FACTORS OF ANY NUMBER.":PRINT"METHOD USED; SIEVE OF ERATOSTHENES." 80PRINT"WITH PRIMES UP TO N, FACTORS OF NUMBERS UP TO N*N CAN BE FOUND." 90C%=46333:PRINT"N = ";C%:REM 46327^2 IS THE MAXIMUM INTEGER VALUE. 100REM SIEVE ARRAY A%() PRIME (1) OR COMPOSITE (0) FOR ALL NUMBERS, P%() WILL CONTAIN PRIMES AFTER THE ROUTINE IS FINISHED. 110DIMA%(C%),P%(C%/7),D%(7),E%(7),F%(7) 120E%()=7,11,13,17,19,23,29,31:F%()=4,2,4,2,4,6,2,6 130 140PRINT:PRINT"CALCULATING......" 150TIME=0:PROCSIEVE(C%):PRINT"TIME SIEVEING ";TIME; 160PROCROUNDUP(C%):PRINT;" + TIME HARVESTING PRIMES = ";TIME 170PRINT:PRINT"TOTAL NUMBER OF PRIMES FOUND; ";N%:N%-=1 180PRINT:PRINT"NOW TO FIND FACTORS. INPUT NUMBER MAX.";:IF C%>46326 PRINT" 2147483647 (2^31-1)":ELSEPRINTC%*C% 190PRINT"INPUT NUMBER TO FACTORIZE;":@%=8 200REPEAT:PRINT:INPUT"NUMBER";D%:IFD%<4 UNTIL0 210PROCFACTOR(D%,C%,N%):UNTIL0 220 230REM SIEVE OF ERASTOSTHENES. MULTIPLES OF 3 AND 5 ARE NOT ERASED AND NOT COUNTED EITHER. 240DEFPROCSIEVE(C%):LOCAL P%,Q%,S%,D%,Y%,Z% 250A%()=1:P%=1:Q%=6:S%=SQRC% 260REPEAT 270REPEAT:Q%+=1:P%+=F%(Q%MOD8):UNTILA%(P%):IFP%>S% THEN ENDPROC 280D%()=E%()*P%:D%=30*P%:D%()+=((P%-5)DIV30*D%) 290IFD%(7)<=C% FORY%=0TO7:FORZ%=D%(Y%)TOC%STEPD%:A%(Z%)=0:NEXT:NEXT:UNTIL0 300FORY%=0TO6:IFD%(Y%)<=C% FORZ%=D%(Y%)TOC%STEPD%:A%(Z%)=0:NEXT:NEXT 310UNTIL0 320ENDPROC 330 340REM HARVESTS ALL PRIMES 350DEFPROCROUNDUP(C%):LOCAL Q% 360P%()=2,3,5:N%=3 370FOR Q%=7TOC%-30STEP30:IFA%(Q%) P%(N%)=Q%:N%+=1 380IFA%(Q%+4)P%(N%)=Q%+4:N%+=1 390IFA%(Q%+6)P%(N%)=Q%+6:N%+=1 400IFA%(Q%+10)P%(N%)=Q%+10:N%+=1 410IFA%(Q%+12)P%(N%)=Q%+12:N%+=1 420IFA%(Q%+16)P%(N%)=Q%+16:N%+=1 430IFA%(Q%+22)P%(N%)=Q%+22:N%+=1 440IFA%(Q%+24)P%(N%)=Q%+24:N%+=1 450NEXT 460IFQ%<C% IFA%(Q%) P%(N%)=Q%:N%+=1 470IFQ%+4<C% IFA%(Q%+4) P%(N%)=Q%+4:N%+=1 480IFQ%+6<C% IFA%(Q%+6) P%(N%)=Q%+6:N%+=1 490IFQ%+10<C% IFA%(Q%+10) P%(N%)=Q%+10:N%+=1 500IFQ%+12<C% IFA%(Q%+12) P%(N%)=Q%+12:N%+=1 510IFQ%+16<C% IFA%(Q%+16) P%(N%)=Q%+16:N%+=1 520IFQ%+22<C% IFA%(Q%+22) P%(N%)=Q%+22:N%+=1 530IFQ%+24<C% IFA%(Q%+24) P%(N%)=Q%+24:N%+=1 540ENDPROC 550 560REM ROUTINE TO FIND FACTORS OF INPUT NUMBER. USES PRIMES IN ARRAY P%(). 570DEFPROCFACTOR(D%,C%,N%):LOCAL A%,B%,Y 580B%=0:PRINT"= "; 590REPEAT:Y%=SQRD%:A%=Y%/LNY%+Y%/99+52:IF A%>N% A%=N% 600FORB%=B%TOA%:IFD%MODP%(B%)NEXT:PRINT;D%:UNTIL1:ENDPROC 610PRINT;P%(B%);"*";:IF A%>B% D%=D%/P%(B%):IFD%>3 UNTIL0 620PRINT;D%:UNTIL1 630ENDPROC 640 650REM TEST TO SET THE VALUES OF CONSTANTS USED IN PROCFACTOR. (INACTTIVE) 660MODE0:Z%=0:V%=0:FORY%=44TO46300STEP11:A%=Y%/LNY%+Y%/99 670FORB%=A%TOC%:IFY%>N%(B%) NEXT 680IFB%-A%<V% V%=B%-A%:U%=Y% 690PLOT69,Y%/40,2*(B%-A%):PLOT69,Y%/40,111:IFB%-A%>Z% Z%=B%-A%:W%=Y% 700NEXTY%:PRINT"LARGEST B%-A%=";Z%;" AT Y%=";W% 710END 720 730REM PRIME TEST FOR ALL ENTRIES IN ARRAY P%(). (INACTTIVE) 740FOR X%=2 TO N%-1:M%=0:REPEAT:IF P%(M%)*P%(M%)>P%(X%) NEXT:END 750IF P%(X%)MODP%(M%)=0 PRINTP%(X%);"NOT PRIME ! ";P%(M%):NEXT:END 760M%+=1:UNTIL0 770 780REM ERROR HANDLING WHEN INPUT NUMBER TOO BIG. 790IF ERR=20:REPORT:PRINT:GOTO200 800REPORT:PRINT" AT LINE ";ERL:END
� >FACTORISE F� JEAN VAN MOURIK MILLCOTTAGE DERWYDD AMMANFORD DYFED SA183LQ UK. (3�12:�"PRIMES SIEVE, FAST VERSION.":�:� � � �TVC 2�"BY JEAN VAN MOURIK." <9�"EACH MULTIPLE OF A PRIME IS ERASED FROM THE ARRAY." F��"THEN HARVESTS THE PRIMES FROM THAT ARRAY.":�"THEN ALLOWS TO FIND FACTORS OF ANY NUMBER.":�"METHOD USED; SIEVE OF ERATOSTHENES." PF�"WITH PRIMES UP TO N, FACTORS OF NUMBERS UP TO N*N CAN BE FOUND." Z?C%=46333:�"N = ";C%:� 46327^2 IS THE MAXIMUM INTEGER VALUE. dz� SIEVE ARRAY A%() PRIME (1) OR COMPOSITE (0) FOR ALL NUMBERS, P%() WILL CONTAIN PRIMES AFTER THE ROUTINE IS FINISHED. n&�A%(C%),P%(C%/7),D%(7),E%(7),F%(7) x4E%()=7,11,13,17,19,23,29,31:F%()=4,2,4,2,4,6,2,6 � ��:�"CALCULATING......" �'�=0:�SIEVE(C%):�"TIME SIEVEING ";�; �5�ROUNDUP(C%):�;" + TIME HARVESTING PRIMES = ";� �0�:�"TOTAL NUMBER OF PRIMES FOUND; ";N%:N%-=1 �[�:�"NOW TO FIND FACTORS. INPUT NUMBER MAX.";:� C%>46326 �" 2147483647 (2^31-1)":��C%*C% �&�"INPUT NUMBER TO FACTORIZE;":@%=8 ��:�:�"NUMBER";D%:�D%<4 �0 ��FACTOR(D%,C%,N%):�0 � �Y� SIEVE OF ERASTOSTHENES. MULTIPLES OF 3 AND 5 ARE NOT ERASED AND NOT COUNTED EITHER. �#��SIEVE(C%):� P%,Q%,S%,D%,Y%,Z% �A%()=1:P%=1:Q%=6:S%=�C% � +�:Q%+=1:P%+=F%(Q%�8):�A%(P%):�P%>S% � � .D%()=E%()*P%:D%=30*P%:D%()+=((P%-5)�30*D%) "7�D%(7)<=C% �Y%=0�7:�Z%=D%(Y%)�C%�D%:A%(Z%)=0:�:�:�0 ,5�Y%=0�6:�D%(Y%)<=C% �Z%=D%(Y%)�C%�D%:A%(Z%)=0:�:� 6�0 @� J T� HARVESTS ALL PRIMES ^��ROUNDUP(C%):� Q% hP%()=2,3,5:N%=3 r+� Q%=7�C%-30�30:�A%(Q%) P%(N%)=Q%:N%+=1 |�A%(Q%+4)P%(N%)=Q%+4:N%+=1 ��A%(Q%+6)P%(N%)=Q%+6:N%+=1 � �A%(Q%+10)P%(N%)=Q%+10:N%+=1 � �A%(Q%+12)P%(N%)=Q%+12:N%+=1 � �A%(Q%+16)P%(N%)=Q%+16:N%+=1 � �A%(Q%+22)P%(N%)=Q%+22:N%+=1 � �A%(Q%+24)P%(N%)=Q%+24:N%+=1 �� �"�Q%<C% �A%(Q%) P%(N%)=Q%:N%+=1 �(�Q%+4<C% �A%(Q%+4) P%(N%)=Q%+4:N%+=1 �(�Q%+6<C% �A%(Q%+6) P%(N%)=Q%+6:N%+=1 �+�Q%+10<C% �A%(Q%+10) P%(N%)=Q%+10:N%+=1 �+�Q%+12<C% �A%(Q%+12) P%(N%)=Q%+12:N%+=1 �+�Q%+16<C% �A%(Q%+16) P%(N%)=Q%+16:N%+=1 +�Q%+22<C% �A%(Q%+22) P%(N%)=Q%+22:N%+=1 +�Q%+24<C% �A%(Q%+24) P%(N%)=Q%+24:N%+=1 � & 0J� ROUTINE TO FIND FACTORS OF INPUT NUMBER. USES PRIMES IN ARRAY P%(). : ��FACTOR(D%,C%,N%):� A%,B%,Y DB%=0:�"= "; N-�:Y%=�D%:A%=Y%/�Y%+Y%/99+52:� A%>N% A%=N% X#�B%=B%�A%:�D%�P%(B%)�:�;D%:�1:� b/�;P%(B%);"*";:� A%>B% D%=D%/P%(B%):�D%>3 �0 l�;D%:�1 v� � �I� TEST TO SET THE VALUES OF CONSTANTS USED IN PROCFACTOR. (INACTTIVE) �0�0:Z%=0:V%=0:�Y%=44�46300�11:A%=Y%/�Y%+Y%/99 ��B%=A%�C%:�Y%>N%(B%) � ��B%-A%<V% V%=B%-A%:U%=Y% �>�69,Y%/40,2*(B%-A%):�69,Y%/40,111:�B%-A%>Z% Z%=B%-A%:W%=Y% �)�Y%:�"LARGEST B%-A%=";Z%;" AT Y%=";W% �� � �;� PRIME TEST FOR ALL ENTRIES IN ARRAY P%(). (INACTTIVE) �3� X%=2 � N%-1:M%=0:�:� P%(M%)*P%(M%)>P%(X%) �:� �8� P%(X%)�P%(M%)=0 �P%(X%);"NOT PRIME ! ";P%(M%):�:� �M%+=1:�0 /� ERROR HANDLING WHEN INPUT NUMBER TOO BIG. � �=20:�:�:�dH@ �:�" AT LINE ";�:� �
00000000 0d 00 0a 10 f4 20 3e 46 41 43 54 4f 52 49 53 45 |..... >FACTORISE| 00000010 0d 00 14 46 f4 20 4a 45 41 4e 20 56 41 4e 20 4d |...F. JEAN VAN M| 00000020 4f 55 52 49 4b 20 4d 49 4c 4c 43 4f 54 54 41 47 |OURIK MILLCOTTAG| 00000030 45 20 44 45 52 57 59 44 44 20 41 4d 4d 41 4e 46 |E DERWYDD AMMANF| 00000040 4f 52 44 20 44 59 46 45 44 20 53 41 31 38 33 4c |ORD DYFED SA183L| 00000050 51 20 20 55 4b 2e 0d 00 1e 05 20 0d 00 28 33 eb |Q UK..... ..(3.| 00000060 31 32 3a f1 22 50 52 49 4d 45 53 20 53 49 45 56 |12:."PRIMES SIEV| 00000070 45 2c 20 46 41 53 54 20 56 45 52 53 49 4f 4e 2e |E, FAST VERSION.| 00000080 22 3a f1 3a ee 20 85 20 e5 20 8d 54 56 43 0d 00 |":.:. . . .TVC..| 00000090 32 1a f1 22 42 59 20 4a 45 41 4e 20 56 41 4e 20 |2.."BY JEAN VAN | 000000a0 4d 4f 55 52 49 4b 2e 22 0d 00 3c 39 f1 22 45 41 |MOURIK."..<9."EA| 000000b0 43 48 20 4d 55 4c 54 49 50 4c 45 20 4f 46 20 41 |CH MULTIPLE OF A| 000000c0 20 50 52 49 4d 45 20 49 53 20 45 52 41 53 45 44 | PRIME IS ERASED| 000000d0 20 46 52 4f 4d 20 54 48 45 20 41 52 52 41 59 2e | FROM THE ARRAY.| 000000e0 22 0d 00 46 85 f1 22 54 48 45 4e 20 48 41 52 56 |"..F.."THEN HARV| 000000f0 45 53 54 53 20 54 48 45 20 50 52 49 4d 45 53 20 |ESTS THE PRIMES | 00000100 46 52 4f 4d 20 54 48 41 54 20 41 52 52 41 59 2e |FROM THAT ARRAY.| 00000110 22 3a f1 22 54 48 45 4e 20 41 4c 4c 4f 57 53 20 |":."THEN ALLOWS | 00000120 54 4f 20 46 49 4e 44 20 46 41 43 54 4f 52 53 20 |TO FIND FACTORS | 00000130 4f 46 20 41 4e 59 20 4e 55 4d 42 45 52 2e 22 3a |OF ANY NUMBER.":| 00000140 f1 22 4d 45 54 48 4f 44 20 55 53 45 44 3b 20 53 |."METHOD USED; S| 00000150 49 45 56 45 20 4f 46 20 45 52 41 54 4f 53 54 48 |IEVE OF ERATOSTH| 00000160 45 4e 45 53 2e 22 0d 00 50 46 f1 22 57 49 54 48 |ENES."..PF."WITH| 00000170 20 50 52 49 4d 45 53 20 55 50 20 54 4f 20 4e 2c | PRIMES UP TO N,| 00000180 20 46 41 43 54 4f 52 53 20 4f 46 20 4e 55 4d 42 | FACTORS OF NUMB| 00000190 45 52 53 20 55 50 20 54 4f 20 4e 2a 4e 20 43 41 |ERS UP TO N*N CA| 000001a0 4e 20 42 45 20 46 4f 55 4e 44 2e 22 0d 00 5a 3f |N BE FOUND."..Z?| 000001b0 43 25 3d 34 36 33 33 33 3a f1 22 4e 20 3d 20 22 |C%=46333:."N = "| 000001c0 3b 43 25 3a f4 20 34 36 33 32 37 5e 32 20 49 53 |;C%:. 46327^2 IS| 000001d0 20 54 48 45 20 4d 41 58 49 4d 55 4d 20 49 4e 54 | THE MAXIMUM INT| 000001e0 45 47 45 52 20 56 41 4c 55 45 2e 0d 00 64 7a f4 |EGER VALUE...dz.| 000001f0 20 53 49 45 56 45 20 41 52 52 41 59 20 41 25 28 | SIEVE ARRAY A%(| 00000200 29 20 50 52 49 4d 45 20 28 31 29 20 4f 52 20 43 |) PRIME (1) OR C| 00000210 4f 4d 50 4f 53 49 54 45 20 28 30 29 20 46 4f 52 |OMPOSITE (0) FOR| 00000220 20 41 4c 4c 20 4e 55 4d 42 45 52 53 2c 20 50 25 | ALL NUMBERS, P%| 00000230 28 29 20 57 49 4c 4c 20 43 4f 4e 54 41 49 4e 20 |() WILL CONTAIN | 00000240 50 52 49 4d 45 53 20 41 46 54 45 52 20 54 48 45 |PRIMES AFTER THE| 00000250 20 52 4f 55 54 49 4e 45 20 49 53 20 46 49 4e 49 | ROUTINE IS FINI| 00000260 53 48 45 44 2e 0d 00 6e 26 de 41 25 28 43 25 29 |SHED...n&.A%(C%)| 00000270 2c 50 25 28 43 25 2f 37 29 2c 44 25 28 37 29 2c |,P%(C%/7),D%(7),| 00000280 45 25 28 37 29 2c 46 25 28 37 29 0d 00 78 34 45 |E%(7),F%(7)..x4E| 00000290 25 28 29 3d 37 2c 31 31 2c 31 33 2c 31 37 2c 31 |%()=7,11,13,17,1| 000002a0 39 2c 32 33 2c 32 39 2c 33 31 3a 46 25 28 29 3d |9,23,29,31:F%()=| 000002b0 34 2c 32 2c 34 2c 32 2c 34 2c 36 2c 32 2c 36 0d |4,2,4,2,4,6,2,6.| 000002c0 00 82 05 20 0d 00 8c 1a f1 3a f1 22 43 41 4c 43 |... .....:."CALC| 000002d0 55 4c 41 54 49 4e 47 2e 2e 2e 2e 2e 2e 22 0d 00 |ULATING......"..| 000002e0 96 27 d1 3d 30 3a f2 53 49 45 56 45 28 43 25 29 |.'.=0:.SIEVE(C%)| 000002f0 3a f1 22 54 49 4d 45 20 53 49 45 56 45 49 4e 47 |:."TIME SIEVEING| 00000300 20 22 3b 91 3b 0d 00 a0 35 f2 52 4f 55 4e 44 55 | ";.;...5.ROUNDU| 00000310 50 28 43 25 29 3a f1 3b 22 20 20 2b 20 20 54 49 |P(C%):.;" + TI| 00000320 4d 45 20 48 41 52 56 45 53 54 49 4e 47 20 50 52 |ME HARVESTING PR| 00000330 49 4d 45 53 20 3d 20 22 3b 91 0d 00 aa 30 f1 3a |IMES = ";....0.:| 00000340 f1 22 54 4f 54 41 4c 20 4e 55 4d 42 45 52 20 4f |."TOTAL NUMBER O| 00000350 46 20 50 52 49 4d 45 53 20 46 4f 55 4e 44 3b 20 |F PRIMES FOUND; | 00000360 22 3b 4e 25 3a 4e 25 2d 3d 31 0d 00 b4 5b f1 3a |";N%:N%-=1...[.:| 00000370 f1 22 4e 4f 57 20 54 4f 20 46 49 4e 44 20 46 41 |."NOW TO FIND FA| 00000380 43 54 4f 52 53 2e 20 49 4e 50 55 54 20 4e 55 4d |CTORS. INPUT NUM| 00000390 42 45 52 20 4d 41 58 2e 22 3b 3a e7 20 43 25 3e |BER MAX.";:. C%>| 000003a0 34 36 33 32 36 20 f1 22 20 32 31 34 37 34 38 33 |46326 ." 2147483| 000003b0 36 34 37 20 28 32 5e 33 31 2d 31 29 22 3a 8b f1 |647 (2^31-1)":..| 000003c0 43 25 2a 43 25 0d 00 be 26 f1 22 49 4e 50 55 54 |C%*C%...&."INPUT| 000003d0 20 4e 55 4d 42 45 52 20 54 4f 20 46 41 43 54 4f | NUMBER TO FACTO| 000003e0 52 49 5a 45 3b 22 3a 40 25 3d 38 0d 00 c8 1d f5 |RIZE;":@%=8.....| 000003f0 3a f1 3a e8 22 4e 55 4d 42 45 52 22 3b 44 25 3a |:.:."NUMBER";D%:| 00000400 e7 44 25 3c 34 20 fd 30 0d 00 d2 18 f2 46 41 43 |.D%<4 .0.....FAC| 00000410 54 4f 52 28 44 25 2c 43 25 2c 4e 25 29 3a fd 30 |TOR(D%,C%,N%):.0| 00000420 0d 00 dc 05 20 0d 00 e6 59 f4 20 53 49 45 56 45 |.... ...Y. SIEVE| 00000430 20 4f 46 20 45 52 41 53 54 4f 53 54 48 45 4e 45 | OF ERASTOSTHENE| 00000440 53 2e 20 4d 55 4c 54 49 50 4c 45 53 20 4f 46 20 |S. MULTIPLES OF | 00000450 33 20 41 4e 44 20 35 20 41 52 45 20 4e 4f 54 20 |3 AND 5 ARE NOT | 00000460 45 52 41 53 45 44 20 41 4e 44 20 4e 4f 54 20 43 |ERASED AND NOT C| 00000470 4f 55 4e 54 45 44 20 45 49 54 48 45 52 2e 0d 00 |OUNTED EITHER...| 00000480 f0 23 dd f2 53 49 45 56 45 28 43 25 29 3a ea 20 |.#..SIEVE(C%):. | 00000490 50 25 2c 51 25 2c 53 25 2c 44 25 2c 59 25 2c 5a |P%,Q%,S%,D%,Y%,Z| 000004a0 25 0d 00 fa 1b 41 25 28 29 3d 31 3a 50 25 3d 31 |%....A%()=1:P%=1| 000004b0 3a 51 25 3d 36 3a 53 25 3d b6 43 25 0d 01 04 05 |:Q%=6:S%=.C%....| 000004c0 f5 0d 01 0e 2b f5 3a 51 25 2b 3d 31 3a 50 25 2b |....+.:Q%+=1:P%+| 000004d0 3d 46 25 28 51 25 83 38 29 3a fd 41 25 28 50 25 |=F%(Q%.8):.A%(P%| 000004e0 29 3a e7 50 25 3e 53 25 20 8c 20 e1 0d 01 18 2e |):.P%>S% . .....| 000004f0 44 25 28 29 3d 45 25 28 29 2a 50 25 3a 44 25 3d |D%()=E%()*P%:D%=| 00000500 33 30 2a 50 25 3a 44 25 28 29 2b 3d 28 28 50 25 |30*P%:D%()+=((P%| 00000510 2d 35 29 81 33 30 2a 44 25 29 0d 01 22 37 e7 44 |-5).30*D%).."7.D| 00000520 25 28 37 29 3c 3d 43 25 20 e3 59 25 3d 30 b8 37 |%(7)<=C% .Y%=0.7| 00000530 3a e3 5a 25 3d 44 25 28 59 25 29 b8 43 25 88 44 |:.Z%=D%(Y%).C%.D| 00000540 25 3a 41 25 28 5a 25 29 3d 30 3a ed 3a ed 3a fd |%:A%(Z%)=0:.:.:.| 00000550 30 0d 01 2c 35 e3 59 25 3d 30 b8 36 3a e7 44 25 |0..,5.Y%=0.6:.D%| 00000560 28 59 25 29 3c 3d 43 25 20 e3 5a 25 3d 44 25 28 |(Y%)<=C% .Z%=D%(| 00000570 59 25 29 b8 43 25 88 44 25 3a 41 25 28 5a 25 29 |Y%).C%.D%:A%(Z%)| 00000580 3d 30 3a ed 3a ed 0d 01 36 06 fd 30 0d 01 40 05 |=0:.:...6..0..@.| 00000590 e1 0d 01 4a 04 0d 01 54 19 f4 20 48 41 52 56 45 |...J...T.. HARVE| 000005a0 53 54 53 20 41 4c 4c 20 50 52 49 4d 45 53 0d 01 |STS ALL PRIMES..| 000005b0 5e 16 dd f2 52 4f 55 4e 44 55 50 28 43 25 29 3a |^...ROUNDUP(C%):| 000005c0 ea 20 51 25 0d 01 68 13 50 25 28 29 3d 32 2c 33 |. Q%..h.P%()=2,3| 000005d0 2c 35 3a 4e 25 3d 33 0d 01 72 2b e3 20 51 25 3d |,5:N%=3..r+. Q%=| 000005e0 37 b8 43 25 2d 33 30 88 33 30 3a e7 41 25 28 51 |7.C%-30.30:.A%(Q| 000005f0 25 29 20 50 25 28 4e 25 29 3d 51 25 3a 4e 25 2b |%) P%(N%)=Q%:N%+| 00000600 3d 31 0d 01 7c 1e e7 41 25 28 51 25 2b 34 29 50 |=1..|..A%(Q%+4)P| 00000610 25 28 4e 25 29 3d 51 25 2b 34 3a 4e 25 2b 3d 31 |%(N%)=Q%+4:N%+=1| 00000620 0d 01 86 1e e7 41 25 28 51 25 2b 36 29 50 25 28 |.....A%(Q%+6)P%(| 00000630 4e 25 29 3d 51 25 2b 36 3a 4e 25 2b 3d 31 0d 01 |N%)=Q%+6:N%+=1..| 00000640 90 20 e7 41 25 28 51 25 2b 31 30 29 50 25 28 4e |. .A%(Q%+10)P%(N| 00000650 25 29 3d 51 25 2b 31 30 3a 4e 25 2b 3d 31 0d 01 |%)=Q%+10:N%+=1..| 00000660 9a 20 e7 41 25 28 51 25 2b 31 32 29 50 25 28 4e |. .A%(Q%+12)P%(N| 00000670 25 29 3d 51 25 2b 31 32 3a 4e 25 2b 3d 31 0d 01 |%)=Q%+12:N%+=1..| 00000680 a4 20 e7 41 25 28 51 25 2b 31 36 29 50 25 28 4e |. .A%(Q%+16)P%(N| 00000690 25 29 3d 51 25 2b 31 36 3a 4e 25 2b 3d 31 0d 01 |%)=Q%+16:N%+=1..| 000006a0 ae 20 e7 41 25 28 51 25 2b 32 32 29 50 25 28 4e |. .A%(Q%+22)P%(N| 000006b0 25 29 3d 51 25 2b 32 32 3a 4e 25 2b 3d 31 0d 01 |%)=Q%+22:N%+=1..| 000006c0 b8 20 e7 41 25 28 51 25 2b 32 34 29 50 25 28 4e |. .A%(Q%+24)P%(N| 000006d0 25 29 3d 51 25 2b 32 34 3a 4e 25 2b 3d 31 0d 01 |%)=Q%+24:N%+=1..| 000006e0 c2 05 ed 0d 01 cc 22 e7 51 25 3c 43 25 20 e7 41 |......".Q%<C% .A| 000006f0 25 28 51 25 29 20 50 25 28 4e 25 29 3d 51 25 3a |%(Q%) P%(N%)=Q%:| 00000700 4e 25 2b 3d 31 0d 01 d6 28 e7 51 25 2b 34 3c 43 |N%+=1...(.Q%+4<C| 00000710 25 20 e7 41 25 28 51 25 2b 34 29 20 50 25 28 4e |% .A%(Q%+4) P%(N| 00000720 25 29 3d 51 25 2b 34 3a 4e 25 2b 3d 31 0d 01 e0 |%)=Q%+4:N%+=1...| 00000730 28 e7 51 25 2b 36 3c 43 25 20 e7 41 25 28 51 25 |(.Q%+6<C% .A%(Q%| 00000740 2b 36 29 20 50 25 28 4e 25 29 3d 51 25 2b 36 3a |+6) P%(N%)=Q%+6:| 00000750 4e 25 2b 3d 31 0d 01 ea 2b e7 51 25 2b 31 30 3c |N%+=1...+.Q%+10<| 00000760 43 25 20 e7 41 25 28 51 25 2b 31 30 29 20 50 25 |C% .A%(Q%+10) P%| 00000770 28 4e 25 29 3d 51 25 2b 31 30 3a 4e 25 2b 3d 31 |(N%)=Q%+10:N%+=1| 00000780 0d 01 f4 2b e7 51 25 2b 31 32 3c 43 25 20 e7 41 |...+.Q%+12<C% .A| 00000790 25 28 51 25 2b 31 32 29 20 50 25 28 4e 25 29 3d |%(Q%+12) P%(N%)=| 000007a0 51 25 2b 31 32 3a 4e 25 2b 3d 31 0d 01 fe 2b e7 |Q%+12:N%+=1...+.| 000007b0 51 25 2b 31 36 3c 43 25 20 e7 41 25 28 51 25 2b |Q%+16<C% .A%(Q%+| 000007c0 31 36 29 20 50 25 28 4e 25 29 3d 51 25 2b 31 36 |16) P%(N%)=Q%+16| 000007d0 3a 4e 25 2b 3d 31 0d 02 08 2b e7 51 25 2b 32 32 |:N%+=1...+.Q%+22| 000007e0 3c 43 25 20 e7 41 25 28 51 25 2b 32 32 29 20 50 |<C% .A%(Q%+22) P| 000007f0 25 28 4e 25 29 3d 51 25 2b 32 32 3a 4e 25 2b 3d |%(N%)=Q%+22:N%+=| 00000800 31 0d 02 12 2b e7 51 25 2b 32 34 3c 43 25 20 e7 |1...+.Q%+24<C% .| 00000810 41 25 28 51 25 2b 32 34 29 20 50 25 28 4e 25 29 |A%(Q%+24) P%(N%)| 00000820 3d 51 25 2b 32 34 3a 4e 25 2b 3d 31 0d 02 1c 05 |=Q%+24:N%+=1....| 00000830 e1 0d 02 26 04 0d 02 30 4a f4 20 52 4f 55 54 49 |...&...0J. ROUTI| 00000840 4e 45 20 54 4f 20 46 49 4e 44 20 46 41 43 54 4f |NE TO FIND FACTO| 00000850 52 53 20 4f 46 20 49 4e 50 55 54 20 4e 55 4d 42 |RS OF INPUT NUMB| 00000860 45 52 2e 20 20 55 53 45 53 20 50 52 49 4d 45 53 |ER. USES PRIMES| 00000870 20 49 4e 20 41 52 52 41 59 20 50 25 28 29 2e 0d | IN ARRAY P%()..| 00000880 02 3a 20 dd f2 46 41 43 54 4f 52 28 44 25 2c 43 |.: ..FACTOR(D%,C| 00000890 25 2c 4e 25 29 3a ea 20 41 25 2c 42 25 2c 59 0d |%,N%):. A%,B%,Y.| 000008a0 02 44 0f 42 25 3d 30 3a f1 22 3d 20 22 3b 0d 02 |.D.B%=0:."= ";..| 000008b0 4e 2d f5 3a 59 25 3d b6 44 25 3a 41 25 3d 59 25 |N-.:Y%=.D%:A%=Y%| 000008c0 2f aa 59 25 2b 59 25 2f 39 39 2b 35 32 3a e7 20 |/.Y%+Y%/99+52:. | 000008d0 41 25 3e 4e 25 20 41 25 3d 4e 25 0d 02 58 23 e3 |A%>N% A%=N%..X#.| 000008e0 42 25 3d 42 25 b8 41 25 3a e7 44 25 83 50 25 28 |B%=B%.A%:.D%.P%(| 000008f0 42 25 29 ed 3a f1 3b 44 25 3a fd 31 3a e1 0d 02 |B%).:.;D%:.1:...| 00000900 62 2f f1 3b 50 25 28 42 25 29 3b 22 2a 22 3b 3a |b/.;P%(B%);"*";:| 00000910 e7 20 41 25 3e 42 25 20 44 25 3d 44 25 2f 50 25 |. A%>B% D%=D%/P%| 00000920 28 42 25 29 3a e7 44 25 3e 33 20 fd 30 0d 02 6c |(B%):.D%>3 .0..l| 00000930 0b f1 3b 44 25 3a fd 31 0d 02 76 05 e1 0d 02 80 |..;D%:.1..v.....| 00000940 05 20 0d 02 8a 49 f4 20 54 45 53 54 20 54 4f 20 |. ...I. TEST TO | 00000950 53 45 54 20 54 48 45 20 56 41 4c 55 45 53 20 4f |SET THE VALUES O| 00000960 46 20 43 4f 4e 53 54 41 4e 54 53 20 55 53 45 44 |F CONSTANTS USED| 00000970 20 49 4e 20 50 52 4f 43 46 41 43 54 4f 52 2e 20 | IN PROCFACTOR. | 00000980 28 49 4e 41 43 54 54 49 56 45 29 0d 02 94 30 eb |(INACTTIVE)...0.| 00000990 30 3a 5a 25 3d 30 3a 56 25 3d 30 3a e3 59 25 3d |0:Z%=0:V%=0:.Y%=| 000009a0 34 34 b8 34 36 33 30 30 88 31 31 3a 41 25 3d 59 |44.46300.11:A%=Y| 000009b0 25 2f aa 59 25 2b 59 25 2f 39 39 0d 02 9e 1a e3 |%/.Y%+Y%/99.....| 000009c0 42 25 3d 41 25 b8 43 25 3a e7 59 25 3e 4e 25 28 |B%=A%.C%:.Y%>N%(| 000009d0 42 25 29 20 ed 0d 02 a8 1c e7 42 25 2d 41 25 3c |B%) ......B%-A%<| 000009e0 56 25 20 56 25 3d 42 25 2d 41 25 3a 55 25 3d 59 |V% V%=B%-A%:U%=Y| 000009f0 25 0d 02 b2 3e f0 36 39 2c 59 25 2f 34 30 2c 32 |%...>.69,Y%/40,2| 00000a00 2a 28 42 25 2d 41 25 29 3a f0 36 39 2c 59 25 2f |*(B%-A%):.69,Y%/| 00000a10 34 30 2c 31 31 31 3a e7 42 25 2d 41 25 3e 5a 25 |40,111:.B%-A%>Z%| 00000a20 20 5a 25 3d 42 25 2d 41 25 3a 57 25 3d 59 25 0d | Z%=B%-A%:W%=Y%.| 00000a30 02 bc 29 ed 59 25 3a f1 22 4c 41 52 47 45 53 54 |..).Y%:."LARGEST| 00000a40 20 42 25 2d 41 25 3d 22 3b 5a 25 3b 22 20 41 54 | B%-A%=";Z%;" AT| 00000a50 20 59 25 3d 22 3b 57 25 0d 02 c6 05 e0 0d 02 d0 | Y%=";W%........| 00000a60 05 20 0d 02 da 3b f4 20 50 52 49 4d 45 20 54 45 |. ...;. PRIME TE| 00000a70 53 54 20 46 4f 52 20 41 4c 4c 20 45 4e 54 52 49 |ST FOR ALL ENTRI| 00000a80 45 53 20 49 4e 20 41 52 52 41 59 20 50 25 28 29 |ES IN ARRAY P%()| 00000a90 2e 20 28 49 4e 41 43 54 54 49 56 45 29 0d 02 e4 |. (INACTTIVE)...| 00000aa0 33 e3 20 58 25 3d 32 20 b8 20 4e 25 2d 31 3a 4d |3. X%=2 . N%-1:M| 00000ab0 25 3d 30 3a f5 3a e7 20 50 25 28 4d 25 29 2a 50 |%=0:.:. P%(M%)*P| 00000ac0 25 28 4d 25 29 3e 50 25 28 58 25 29 20 ed 3a e0 |%(M%)>P%(X%) .:.| 00000ad0 0d 02 ee 38 e7 20 50 25 28 58 25 29 83 50 25 28 |...8. P%(X%).P%(| 00000ae0 4d 25 29 3d 30 20 f1 50 25 28 58 25 29 3b 22 4e |M%)=0 .P%(X%);"N| 00000af0 4f 54 20 50 52 49 4d 45 20 21 20 20 22 3b 50 25 |OT PRIME ! ";P%| 00000b00 28 4d 25 29 3a ed 3a e0 0d 02 f8 0c 4d 25 2b 3d |(M%):.:.....M%+=| 00000b10 31 3a fd 30 0d 03 02 05 20 0d 03 0c 2f f4 20 45 |1:.0.... .../. E| 00000b20 52 52 4f 52 20 48 41 4e 44 4c 49 4e 47 20 57 48 |RROR HANDLING WH| 00000b30 45 4e 20 49 4e 50 55 54 20 4e 55 4d 42 45 52 20 |EN INPUT NUMBER | 00000b40 54 4f 4f 20 42 49 47 2e 0d 03 16 14 e7 20 9f 3d |TOO BIG...... .=| 00000b50 32 30 3a f6 3a f1 3a e5 8d 64 48 40 0d 03 20 16 |20:.:.:..dH@.. .| 00000b60 f6 3a f1 22 20 41 54 20 4c 49 4e 45 20 22 3b 9e |.:." AT LINE ";.| 00000b70 3a e0 0d ff |:...| 00000b74
.