CLS
DIM prim(1000)
prim(1) = 2
k = 3
n = 1

primjelolt:
FOR j = 1 TO n
IF INT(k / prim(j)) = k / prim(j) THEN k = k + 1: GOTO primjelolt
IF prim(j) > SQR(k) THEN GOTO ujprim
NEXT j

ujprim:
prim(n + 1) = k
n = n + 1
k = k + 1
IF n < 1000 THEN GOTO primjelolt

DIM tenyezo(20)
n = 2
' Elkesziti n primtenyezos felbontasat.
' Itt nem eleg gyok(n)-ig menni, mert az osszes tenyezore szuksegunk van.

ujszam:
j = 1
IF n > 7919 THEN END
' Azert ez a hatar, mert az 1000. prim 7919, es ennek a felbontasahoz
' az osszes tarolt primre szukseg van
m = n
FOR i = 1 TO 1000
IF m = 1 THEN n = n + 1: j = j - 1: GOSUB kiir: GOTO ujszam
IF prim(i) > SQR(m) THEN tenyezo(j) = m: n = n + 1: GOSUB kiir: GOTO ujszam
j: IF INT(m / prim(i)) = m / prim(i) THEN tenyezo(j) = prim(i): m = m / prim(i): j = j + 1: GOTO j
NEXT i

kiir:
LOCATE 24, 1: PRINT n - 1;
FOR jj = 1 TO j
LOCATE 24, jj * 4 + 5: PRINT tenyezo(jj);
NEXT jj
PRINT ""
RETURN

