Primes by Trial Division - Data General AOS PL/I

18 June 2025
Data General AOS PL/I does not allow a non-BINARY type to be used as an array index.
MAIN: PROCEDURE;
%REPLACE
/* N BY 100; */
N BY 1000;
DECLARE (I, FOUND) BINARY FIXED (6),
(COUNT, PRIMES (N)) DECIMAL FIXED (6);
FOUND = 0;
COUNT = 2;
DO WHILE (FOUND < N);
FOUND = FOUND + 1;
PUT SKIP LIST (COUNT);
PRIMES (FOUND) = COUNT;
NOTPRIME: COUNT = COUNT + 1;
I = 1;
NEXT: IF (MOD (COUNT, PRIMES (I)) = 0)
THEN GO TO NOTPRIME;
ELSE DO
I = I + 1;
IF (I <= FOUND)
THEN GO TO NEXT;
END;
END;
END;