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