36 lines
544 B
Text
36 lines
544 B
Text
PROGRAM ALMOST_PRIME
|
|
|
|
!
|
|
! for rosettacode.org
|
|
!
|
|
|
|
!$INTEGER
|
|
|
|
PROCEDURE KPRIME(N,K->KP)
|
|
LOCAL P,F
|
|
FOR P=2 TO 999 DO
|
|
EXIT IF NOT((F<K) AND (P*P<=N))
|
|
WHILE (N MOD P)=0 DO
|
|
N/=P
|
|
F+=1
|
|
END WHILE
|
|
END FOR
|
|
KP=(F-(N>1)=K)
|
|
END PROCEDURE
|
|
|
|
BEGIN
|
|
PRINT(CHR$(12);) !CLS
|
|
FOR K=1 TO 5 DO
|
|
PRINT("k =";K;":";)
|
|
C=0
|
|
FOR I=2 TO 999 DO
|
|
EXIT IF NOT(C<10)
|
|
KPRIME(I,K->KP)
|
|
IF KP THEN
|
|
PRINT(I;)
|
|
C+=1
|
|
END IF
|
|
END FOR
|
|
PRINT
|
|
END FOR
|
|
END PROGRAM
|