%%HP: T(3)A(R)F(.);
\<< RCLF 1 { } \-> z
flags n f
  \<< -55 CF
    WHILE "Factoring"
1 DISP
      IFERR z FACTOR
      THEN DROP 1.
      ELSE FACTORS XQ
1
        \<<
          IF NSUB 2
MOD NOT
          THEN ^
          ELSE \->CP
          END
        \>> DOSUBS 'f'
STO+ 0.
      END
    REPEAT
      DO
        DO n
NEXTPRIME 'n' STO
"Searching n: " n + 1
DISP
        UNTIL n 1 - 4
MOD NOT
        END
        IF "Check " n
+ 2 DISP z n IDIV2
\->NUM 0. ==
        THEN
"Positive" 3 DISP 'z'
STO n PA2B2 DUP CONJ
2 \->LIST
          \<< \->CP
          \>> MAP 'f'
STO+ 'n' 1 STO- 1.
        ELSE DROP
"Negative" 3 DISP 0.
        END
      UNTIL
      END
    END f flags STOF
  \>>
\>>