Sum of square and cube digits of an integer are primes: Difference between revisions

Content added Content deleted
(Dialects of BASIC moved to the BASIC section.)
m (→‎{{header|Tiny BASIC}}: Works with (Tom Pittman's) TinyBasic)
Line 178: Line 178:


==={{header|Tiny BASIC}}===
==={{header|Tiny BASIC}}===
{{works with|TinyBasic}}
This can only go up to 31 because 32^3 is too big to fit in a signed 16-bit int.
This can only go up to 31 because 32^3 is too big to fit in a signed 16-bit int.
<syntaxhighlight lang="tinybasic">REM N, the number to be tested
<syntaxhighlight lang="basic">10 REM Sum of square and cube digits of an integer are primes
REM D, the digital sum of its square or cube
20 REM N, the number to be tested
30 REM D, the digital sum of its square or cube
REM T, temporary variable
40 REM T, temporary variable
REM Z, did D test as prime or not
50 REM Z, did D test as prime or not

LET N = 1
60 LET N = 1
10 LET T = N*N*N
70 LET T = N * N * N
GOSUB 20
80 GOSUB 200
GOSUB 30
90 GOSUB 260
IF Z = 0 THEN GOTO 11
100 IF Z = 0 THEN GOTO 160
LET T = N*N
110 LET T = N * N
GOSUB 20
120 GOSUB 200
GOSUB 30
130 GOSUB 260
IF Z = 0 THEN GOTO 11
140 IF Z = 0 THEN GOTO 160
PRINT N
150 PRINT N
11 IF N = 31 THEN END
160 IF N = 31 THEN END
LET N = N + 1
170 LET N = N + 1
GOTO 10
180 GOTO 70
190 REM Calculate sum of digits
20 LET D = 0
21 IF T = 0 THEN RETURN
200 LET D = 0
210 IF T = 0 THEN RETURN
LET D = D + (T-(T/10)*10)
LET T = T/10
220 LET D = D + (T - (T / 10) * 10)
GOTO 21
230 LET T = T / 10
240 GOTO 210
30 LET Z = 0
250 REM Check if is prime
IF D < 2 THEN RETURN
LET Z = 1
260 LET Z = 0
IF D < 4 THEN RETURN
270 IF D < 2 THEN RETURN
LET Z = 0
280 LET Z = 1
IF (D/2)*2 = D THEN RETURN
290 IF D < 4 THEN RETURN
LET T = 1
300 LET Z = 0
310 IF (D / 2) * 2 = D THEN RETURN
31 LET T = T + 2
320 LET T = 1
IF T*T>D THEN GOTO 32
330 LET T = T + 2
IF (D/T)*T=D THEN RETURN
GOTO 31
340 IF T * T > D THEN GOTO 370
350 IF (D / T) * T = D THEN RETURN
32 LET Z = 1
360 GOTO 330
RETURN</syntaxhighlight>
370 LET Z = 1
{{out}}<pre>
380 RETURN</syntaxhighlight>
16
{{out}}<pre>16
17
17
25
25