Primes by Trial Division - PL/I

23 April 2017

 NPRIMES:   PROCEDURE (N) OPTIONS (MAIN NOEXECOPS);
            DECLARE N CHARACTER VARYING;
            CALL CALCULATE (N);
 CALCULATE: PROCEDURE (N);
            DECLARE I DECIMAL FIXED (5),
                    FOUND DECIMAL FIXED (5),
                    COUNT DECIMAL FIXED (6),
                    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 CALCULATE;
        END NPRIMES;

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026

Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Primes Benchmark Source

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Primes Benchmark Results

Other PL/Is

PL/I

DRI PL/I-86