PROGRAM SEMIPRIME_NUMBER !VAR I% PROCEDURE SEMIPRIME(N%->RESULT%) LOCAL F%,P% P%=2 LOOP EXIT IF NOT(F%<2 AND P%*P%<=N%) WHILE (N% MOD P%)=0 DO N%=N% DIV P% F%+=1 END WHILE P%+=1 END LOOP RESULT%=F%-(N%>1)=2 END PROCEDURE BEGIN PRINT(CHR$(12);) !CLS FOR I%=2 TO 100 DO SEMIPRIME(I%->RESULT%) IF RESULT% THEN PRINT(I%;) END IF END FOR PRINT END PROGRAM