RosettaCodeData/Task/Semiprime/MoonRock/semiprime.moonrock
2026-04-30 12:34:36 -04:00

33 lines
583 B
Text

' Semiprime
BEGIN DEF
pointer word PtrCount~)
SUB CalcCount(N%, PtrCount~)
BEGIN CODE
PRINT "Enter an integer: "
INPUT (TmpStr$)
N% = VAL(TmpStr$)
PRINT "\n"
CALL CalcCount(N%, VARPTR(Count%))
IF Count% = 2 THEN
PRINT "It is a semiprime.\n"
ELSE
PRINT "It is not a semiprime.\n"
ENDIF
END
SUB CalcCount(N%, PtrCount~)
N% = ABS(N%)
Count% = 0
IF N% >= 2 THEN
FOR Factor% = 2 TO N%
NModFactor% = N% MOD Factor%
WHILE NModFactor% = 0
Count% = Count% + 1
N% = N% \ Factor%
NModFactor% = N% MOD Factor%
WEND
NEXT
ENDIF
[PtrCount~] = Count%
END SUB