RosettaCodeData/Task/Semiprime/ERRE/semiprime.erre
2016-12-05 23:44:36 +01:00

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