Square but not cube: Difference between revisions
m
→{{header|Commodore BASIC}}: Fix inner loop goto target
m (→{{header|Commodore BASIC}}: Fix inner loop goto target) |
|||
Line 702:
=={{header|Commodore BASIC}}==
{{trans|BASIC}}
<lang basic>100 DIM SC(2): SC = 0: REM REMEMBER SQUARE CUBES
110 PRINT "SQUARES BUT NOT CUBES:"
120 N = 0: REM NUMBER OF NON-CUBE SQUARES FOUND
130 SR = 1: REM CURRENT SQUARE ROOT
140 CR = 1: CU = 1: REM CURRENT CUBE ROOT AND CUBE
150 REM BEGIN LOOP
150 IF SQ > CU THEN RT=RT+1: CU=RT*RT*RT: GOTO 150▼
160 : IF
170
190 : IF SQ = CU THEN SC(SC) = SQ: SC = SC + 1
200
210
220 GOTO 160: REM END LOOP
220 FOR I=0 TO SC-1:PRINT SC(I),:NEXT I▼
230 PRINT
240 PRINT "BOTH SQUARES AND CUBES:"
260 PRINT</lang>
{{works with|Commodore BASIC|7.0}}
This version uses BASIC 7's DO ... LOOP structure:
<pre>100 DIM SC(2): SC = 0: REM REMEMBER SQUARE CUBES
110 PRINT "SQUARES BUT NOT CUBES:"
120 N = 0: REM NUMBER OF NON-CUBE SQUARES FOUND
130 SR = 1: REM CURRENT SQUARE ROOT
140 CR = 1: CU = 1: REM CURRENT CUBE ROOT AND CUBE
150 DO WHILE N < 30
170 : SQ = SR * SR
180 : DO WHILE SQ > CU: CR = CR + 1: CU = CR*CR*CR: LOOP
190 : IF SQ = CU THEN SC(SC) = SQ: SC = SC + 1
200 : IF SQ < CU THEN N = N + 1:PRINT SQ,
210 : SR = SR + 1
220 LOOP
230 PRINT: PRINT
240 PRINT "BOTH SQUARES AND CUBES:"
250 FOR I=0 TO SC-1: PRINT SC(I),: NEXT I
260 PRINT</pre>
{{Out}}
|