-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path010.cbl
32 lines (26 loc) · 983 Bytes
/
010.cbl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
IDENTIFICATION DIVISION.
PROGRAM-ID. Euler010.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 n PIC 9(4) COMP.
01 res PIC 9(18) COMP VALUE 2.
01 sieve.
05 isp PIC 9 VALUE 1 OCCURS 2000000 TIMES
INDEXED BY i.
01 out PIC Z(18).
PROCEDURE DIVISION.
PERFORM VARYING n FROM 2 BY 1 UNTIL n * n > 2000000
SET i TO n
IF isp(i) = 1
MULTIPLY n BY n GIVING i
PERFORM VARYING i FROM i BY n UNTIL i > 2000000
SET isp(i) TO 0
END-PERFORM
END-PERFORM
PERFORM VARYING i FROM 3 BY 2 UNTIL i > 2000000
IF isp(i) = 1
ADD i TO res
END-PERFORM
MOVE res TO out
DISPLAY FUNCTION TRIM (out)
STOP RUN.