26 lines
457 B
Text
26 lines
457 B
Text
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
|