Prime Number Generator
Problem Description
Generate all prime numbers up to N.
Expected Output
List of prime numbers
Hints
Check divisibility from 2 to square root of number.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. PRIMES.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-N PIC 9(4).
01 WS-NUM PIC 9(4).
01 WS-DIV PIC 9(4).
01 WS-SQRT PIC 9(4).
01 WS-REM PIC 9(4).
01 WS-TEMP PIC 9(4).
01 WS-IS-PRIME PIC 9 VALUE 1.
01 WS-COUNT PIC 9(4) VALUE 0.
PROCEDURE DIVISION.
DISPLAY "FIND PRIMES UP TO: ".
ACCEPT WS-N.
DISPLAY "PRIME NUMBERS:".
PERFORM VARYING WS-NUM FROM 2 BY 1 UNTIL WS-NUM > WS-N
MOVE 1 TO WS-IS-PRIME
COMPUTE WS-SQRT = FUNCTION SQRT(WS-NUM)
PERFORM VARYING WS-DIV FROM 2 BY 1
UNTIL WS-DIV > WS-SQRT OR WS-IS-PRIME = 0
DIVIDE WS-NUM BY WS-DIV GIVING WS-TEMP
REMAINDER WS-REM
IF WS-REM = 0
MOVE 0 TO WS-IS-PRIME
END-IF
END-PERFORM
IF WS-IS-PRIME = 1
DISPLAY WS-NUM
ADD 1 TO WS-COUNT
END-IF
END-PERFORM.
DISPLAY "TOTAL PRIMES FOUND: " WS-COUNT.
STOP RUN.
Explanation:
Check divisibility up to square root. If no divisors found, its prime.