71 lines
1.9 KiB
Plaintext
71 lines
1.9 KiB
Plaintext
M% = 50
|
|
E% = 10000000
|
|
DIM Res%(3, M%-1), Task$(3), Exc%(3), Idx%(3), N% 15
|
|
|
|
Size%=3
|
|
WHILE TRUE
|
|
Overflow%=FALSE
|
|
Last%=Size% - 1
|
|
Zero%=Last% / 2
|
|
$$N%=STRING$(Size%, "1")
|
|
N%?Zero%=48
|
|
REPEAT
|
|
V%=VAL$$N%
|
|
|
|
IF Exc%(0) == 0 THEN
|
|
Idx%(0)+=1
|
|
IF Idx%(0) < M% Res%(0, Idx%(0))=V%
|
|
IF V% > E% Exc%(0)=V%
|
|
ENDIF
|
|
|
|
IF Exc%(2) == 0 THEN
|
|
IF FNIsPrime(V%) THEN
|
|
IF Exc%(1) == 0 THEN
|
|
IF Idx%(1) < M% Res%(1, Idx%(1))=V%
|
|
Idx%(1)+=1
|
|
IF V% > E% Exc%(1)=V%
|
|
ENDIF
|
|
IF FNIsPrime(VAL(LEFT$($$N%, Zero%) + $$(N% + Zero% + 1))) THEN
|
|
IF Idx%(2) < M% Res%(2, Idx%(2))=V%
|
|
Idx%(2)+=1
|
|
IF V% > E% Exc%(2)=V%
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
FOR I%=0 TO Zero%-1
|
|
IF N%?I% <> N%?(Last%-I%) EXIT FOR
|
|
NEXT
|
|
IF I% == Zero% IF FNIsPrime(V%) THEN
|
|
IF Idx%(3) < M% Res%(3, Idx%(3))=V%
|
|
Idx%(3)+=1
|
|
IF V% > E% Exc%(3)=V% EXIT WHILE
|
|
ENDIF
|
|
|
|
D%=Last%
|
|
N%?D%+=1
|
|
WHILE N%?D% > 57
|
|
N%?D%=49
|
|
D%-=1 IF D% == Zero% D%-=1
|
|
IF D% < 0 Overflow%=TRUE EXIT WHILE
|
|
N%?D%+=1
|
|
ENDWHILE
|
|
UNTIL Overflow%
|
|
Size%+=2
|
|
ENDWHILE
|
|
|
|
@%=&20008
|
|
Task$()="", " prime", " blind prime", " palindromic prime"
|
|
FOR I%=0 TO 3
|
|
PRINT "The first ";M% Task$(I%) " cyclop numbers are:"
|
|
FOR J%=0 TO M%-1
|
|
PRINT Res%(I%, J%),;
|
|
IF J% MOD 10 == 9 PRINT
|
|
NEXT
|
|
PRINT "First" Task$(I%) " cyclop number > ";E% \
|
|
\ " is ";Exc%(I%) " at index ";Idx%(I%) "." '
|
|
NEXT
|
|
END
|
|
|
|
DEF FNIsPrime(n%) FOR I%=2 TO SQRn% IF n% MOD I% == 0 THEN =FALSE ELSE NEXT =TRUE
|