33 lines
583 B
Text
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
|