0 'FACTOR.BA Bob Delbourgo
1 'CLUB 100 Library - 415/939-1246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE
10 CLS:FORI=2TO3:FORJ=2TOINT(319/I)
15 IFI*J<>319THENPRINT@I*J,CHR$(255);
16 NEXTJ,I
20 PRINT@94,"Prime Numbers";:PRINT@174,"Bob Delbourgo";:PRINT@280,"15 Willowdenea Av, Hobart, Australia";
30 FORT=1TO500:NEXT
40 CLS:LINE(20,13)-(220,49),1,B:PRINT@85,"(1) ENUMERATION OF PRIMES ";:PRINT@125,"(2) FACTORISATION TO PRIMES ";:PRINT@165,"(3) HCF & LCM OF INTEGER SET";
50 PRINT@205,"(4) QUIT ---ENTER NUMBER";:C$=INPUT$(1):C=VAL(C$):IFC<0ORC>4THEN50
60 ONCGOTO100,200,300,400
100 CLS:PRINT@6,"ENUMERATION OF PRIME NUMBERS";
105 PRINT@40,STRING$(40,231);
110 PRINT@80,"Prime numbers up to (MAX. 1000)";:INPUTN:N=INT(N):IFN<2ORN>1000THEN110
120 DIMA(N):PRINT"Please wait for them!":GOSUB500
130 FORI=1TON:IFA(I)<>0THENPRINTA(I);:BEEP
140 NEXTI:PRINT:PRINT"
TO PRINT OUT, TO RESTART";
150 I$=INKEY$
155 IFI$="P"THEN170
160 IFI$="R"THENCLS:RUN40
165 GOTO150
170 FORI=2TON:IFA(I)<>0THENLPRINT,A(I);
180 NEXTI:LPRINT:GOTO150
200 CLS:PRINT"FACTORISATION OF AN INTEGER INTO PRIMES
205 PRINT@40,STRING$(40,241);
210 PRINT@80,"Enter integer to be factorised";:INPUTR:R=INT(R):IFR>1000000ORR<2THEN210
215 PRINT@160,"Working it out...";
220 M=R:N=INT(SQR(R)):DIMA(N+1),B(N+1):GOSUB500
230 FORI=2TON:IFA(I)=0THEN250
235 IFM=A(I)*INT(M/A(I))THENB(I)=B(I)+1ELSE250
240 M=M/A(I):GOTO235
250 NEXTI
260 BEEP:PRINT@160,"The prime factorisation of"R"is:"
265 FORI=2TON
270 IFA(I)<>0ANDB(I)<>0THENPRINT"(";MID$(STR$(A(I)),2,LEN(STR$(A(I)))-1);"^";MID$(STR$(B(I)),2,LEN(STR$(B(I)))-1);")";
280 NEXTI
285 IFM<>1THENPRINT"(";MID$(STR$(M),2,LEN(STR$(M))-1);"^1)";
290 PRINT:PRINT:PRINT" to Restart, FOR MORE FACTORS.";
295 I$=INKEY$
296 IFI$="R"THENRUN40
297 IFI$="F"THENRUN200
298 GOTO295
300 CLS:PRINT" HCF AND LCM OF INTEGER SET";
301 PRINT@40,STRING$(40,167);
303 PRINT@80,"How many integers to factorise";:INPUTS:S=INT(S):IFS<2THEN303ELSEDIMM(S),R(S)
304 FORJ=1TOS:PRINT"Enter #"J"integer";:INPUTR(J):R(J)=INT(R(J)):IFR(J)<2THEN304ELSEM(J)=R(J):NEXTJ:GOSUB600:PRINTSTRING$(40,241);:PRINT"Press any key to proceed to next stage";:GOSUB800:PRINT
305 PRINT:N=INT(SQR(M)):DIMA(N+1),B(N+1,S):GOSUB500
306 FORJ=1TOS:FORI=2TON:IFA(I)=0THEN309
307 IFM(J)=A(I)*INT(M(J)/A(I))THENB(I,J)=B(I,J)+1ELSE309
308 M(J)=M(J)/A(I):GOTO307
309 NEXTI,J:GOSUB900
310 FORJ=1TOS:PRINTR(J);"=";
311 FORI=2TON
312 IFA(I)<>0ANDB(I,J)<>0THENPRINT"(";MID$(STR$(B(I,J)),2,LEN(STR$(B(I,J)))-1);")";
313 NEXTI
314 IFM(J)<>1THENPRINT"(";MID$(STR$(M(J)),2,LEN(STR$(M))-1);"^1)";
315 BEEP:GOSUB800:PRINT:NEXTJ
316 BEEP:PRINTSTRING$(40,241);:GOSUB800:DIMC(N+1),L(S)
317 PRINT"The lowest common multiple of"
318 FORJ=1TOS:PRINTR(J);:NEXTJ:PRINT" is"
319 FORI=2TON:IFA(I)=0THEN323
320 C(I)=B(I,1)
321 FORJ=2TOS:IFB(I,J)>C(I)THENC(I)=B(I,J)
322 NEXTJ
323 NEXTI
324 GOSUB700
325 FORI=2TON:IFA(I)=0ORC(I)=0THEN327
326 PRINT"(";MID$(STR$(A(I)),2,LEN(STR$(A(I)))-1);"^";MID$(STR$(C(I)),2,LEN(STR$(C(I)))-1);")";
327 NEXTI
328 FORJ=1TOS:IFL(J)<2THEN330
329 PRINT"(";MID$(STR$(L(J)),2,LEN(STR$(L(J)))-1);"^1)";
330 NEXTJ
331 L=1:FORI=2TON:IFA(I)=0ORC(I)=0THEN333
332 FORK=1TOC(I):L=L*A(I):NEXTK
333 NEXTI
334 FORI=1TOS:IFL(I)<2THEN336
335 L=L*L(I)
336 NEXTI
337 PRINT" ="L:PRINTSTRING$(40,241);:BEEP:GOSUB800
338 DIMD(N+1):PRINT"The highest common factor of"
339 FORJ=1TOS:PRINTR(J);:NEXTJ:PRINT"is"
340 FORI=2TON:IFA(I)=0THEN344
341 D(I)=B(I,1)
342 FORJ=2TOS:IFB(I,J)1THENPRINT"(";MID$(STR$(F),2,LEN(STR$(F))-1);"^1);
350 H=1
351 FORI=2TON:IFA(I)=0ORD(I)=0THEN353
352 FORK=1TOD(I):H=H*A(I):NEXTK
353 NEXTI:H=H*F
354 PRINT" ="H
355 PRINTSTRING$(40,241);:PRINT" for menu, for more HCF & LCM.";
356 I$=INKEY$
357 IFI$="R"THENRUN40
358 IFI$="H"THENRUN300
359 GOTO356
400 MENU
500 FORI=1TON:A(I)=I:NEXTI
505 FORJ=2TOINT(SQR(N)):IFA(J)=0THEN525
510 FORK=J+1TON
515 IFA(K)=A(J)*INT(A(K)/A(J))THENA(K)=0
520 NEXTK
525 NEXTJ
530 RETURN
600 M=M(1):FORJ=2TOS:IFM(J)>M(J-1)THENM=M(J)
610 NEXTJ:RETURN
700 L(1)=M(1):FORJ=1TOS
701 IFM(J)