mirror of
https://github.com/moshix/mvs.git
synced 2026-01-11 23:43:00 +00:00
uplodaed the TK4 cobol prime number finder source only
This commit is contained in:
parent
911630ac4b
commit
2d1ccec8ec
141
cobolprime
Normal file
141
cobolprime
Normal file
@ -0,0 +1,141 @@
|
||||
10 * ////////////////////////////////////////////////////////// PRIME
|
||||
20 * // Name: Peter M. Maurer PRIME
|
||||
30 * // Program: Sieve of Eratosthenes PRIME
|
||||
40 * // Due: Never PRIME
|
||||
50 * // Language: COBOL PRIME
|
||||
60 * // PRIME
|
||||
70 * // Changes: PRIME
|
||||
80 * // - Juergen Winkelmann, 2014/10/25, o adaption to IBM OS COBOL PRIME
|
||||
90 * // o read limit from SYSIN PRIME
|
||||
100 * // o n**2 (sqrt) shortcut PRIME
|
||||
110 * // o skip even numbers PRIME
|
||||
120 * // o compact output format PRIME
|
||||
130 * // o 32767 prime flags PRIME
|
||||
140 * ////////////////////////////////////////////////////////// PRIME
|
||||
150 *** PRIME
|
||||
160 *** PRIME
|
||||
170 *** PRIME
|
||||
180 IDENTIFICATION DIVISION. PRIME
|
||||
190 PROGRAM-ID. 'PRIMES'. PRIME
|
||||
200 *** PRIME
|
||||
210 *** PRIME
|
||||
220 *** PRIME
|
||||
230 ENVIRONMENT DIVISION. PRIME
|
||||
240 ** PRIME
|
||||
250 ** PRIME
|
||||
260 CONFIGURATION SECTION. PRIME
|
||||
270 SOURCE-COMPUTER. IBM-360. PRIME
|
||||
280 OBJECT-COMPUTER. IBM-360. PRIME
|
||||
290 ** PRIME
|
||||
300 ** PRIME
|
||||
310 INPUT-OUTPUT SECTION. PRIME
|
||||
320 FILE-CONTROL. PRIME
|
||||
330 SELECT PRIMES-SYSIN PRIME
|
||||
340 ASSIGN TO UT-S-SYSIN. PRIME
|
||||
350 *** PRIME
|
||||
360 *** PRIME
|
||||
370 *** PRIME
|
||||
380 DATA DIVISION. PRIME
|
||||
390 ** PRIME
|
||||
400 ** PRIME
|
||||
410 FILE SECTION. PRIME
|
||||
420 FD PRIMES-SYSIN PRIME
|
||||
430 RECORDING MODE IS F PRIME
|
||||
440 RECORD CONTAINS 80 CHARACTERS PRIME
|
||||
450 BLOCK CONTAINS 1 RECORDS PRIME
|
||||
460 LABEL RECORDS ARE OMITTED PRIME
|
||||
470 DATA RECORD IS PRIMES-SYSIN-RECORD. PRIME
|
||||
480 01 PRIMES-SYSIN-RECORD. PRIME
|
||||
490 02 PRIMES-SYSIN-NUMBER PIC 99999999 OCCURS 10. PRIME
|
||||
500 ** PRIME
|
||||
510 ** PRIME
|
||||
520 WORKING-STORAGE SECTION. PRIME
|
||||
530 77 I PIC 99999999 COMP VALUE 1. PRIME
|
||||
540 77 J PIC 99999999 COMP. PRIME
|
||||
550 77 K PIC 99999999 COMP VALUE 1. PRIME
|
||||
560 77 N PIC 99999999 COMP. PRIME
|
||||
570 77 N-2 PIC 99999999 COMP. PRIME
|
||||
580 77 SQRTN PIC 99999999 COMP. PRIME
|
||||
590 77 PRODUCT PIC 99999999 COMP. PRIME
|
||||
600 01 BLANK-LINE PIC X(160). PRIME
|
||||
610 01 OUT-INTEGER. PRIME
|
||||
620 02 SHOWIT PIC ZZZZZZZZ OCCURS 20. PRIME
|
||||
630 01 OUT REDEFINES OUT-INTEGER. PRIME
|
||||
640 02 OUT-LINE PIC X(160). PRIME
|
||||
650 01 PRIME-FLAGS. PRIME
|
||||
660 02 ISPRIME PIC 9 OCCURS 32767. PRIME
|
||||
670 *** PRIME
|
||||
680 *** PRIME
|
||||
690 *** PRIME
|
||||
700 PROCEDURE DIVISION. PRIME
|
||||
710 ** PRIME
|
||||
720 ** PRIME
|
||||
730 MAIN-PART. PRIME
|
||||
740 OPEN INPUT PRIMES-SYSIN. PRIME
|
||||
750 READ PRIMES-SYSIN AT END DISPLAY '** EOF on SYSIN **'. PRIME
|
||||
760 MOVE PRIMES-SYSIN-NUMBER (1) TO N. PRIME
|
||||
770 CLOSE PRIMES-SYSIN. PRIME
|
||||
780 SUBTRACT 2 FROM N GIVING N-2. PRIME
|
||||
790 * PRIME
|
||||
800 PERFORM NEXT-SQUARE UNTIL SQRTN GREATER N. PRIME
|
||||
810 MOVE I TO SQRTN. PRIME
|
||||
820 * PRIME
|
||||
830 MOVE 3 TO I. PRIME
|
||||
840 PERFORM INIT-1 UNTIL I GREATER N. PRIME
|
||||
850 * PRIME
|
||||
860 MOVE 3 TO I. PRIME
|
||||
870 PERFORM CHECK-NUMBER UNTIL I GREATER SQRTN OR EQUAL SQRTN. PRIME
|
||||
880 * PRIME
|
||||
890 MOVE 3 TO I. PRIME
|
||||
900 MOVE 2 TO J. PRIME
|
||||
910 MOVE J TO SHOWIT (K). PRIME
|
||||
920 PERFORM PRINT UNTIL I GREATER N. PRIME
|
||||
930 * PRIME
|
||||
940 MOVE K TO SHOWIT (1). PRIME
|
||||
950 MOVE N TO SHOWIT (2). PRIME
|
||||
960 DISPLAY ' '. PRIME
|
||||
970 DISPLAY SHOWIT (1), ' primes up to ', SHOWIT (2), ' found.'. PRIME
|
||||
980 STOP RUN. PRIME
|
||||
990 ** PRIME
|
||||
1000 ** PRIME
|
||||
1010 INIT-1. PRIME
|
||||
1020 MOVE 1 TO ISPRIME (I). PRIME
|
||||
1030 ADD 2 TO I. PRIME
|
||||
1040 ** PRIME
|
||||
1050 ** PRIME
|
||||
1060 CHECK-NUMBER. PRIME
|
||||
1070 PERFORM ADVANCE UNTIL I GREATER THAN SQRTN OR EQUAL TO SQRT PRIME
|
||||
1080 - N OR ISPRIME (I) EQUAL TO 1. PRIME
|
||||
1090 IF ISPRIME (I) EQUAL TO 1 PRIME
|
||||
1100 ADD I I GIVING J PRIME
|
||||
1110 MULTIPLY I BY I GIVING PRODUCT PRIME
|
||||
1120 PERFORM CROSS-OUT UNTIL PRODUCT GREATER THAN N. PRIME
|
||||
1130 ADD 2 TO I. PRIME
|
||||
1140 ** PRIME
|
||||
1150 ** PRIME
|
||||
1160 ADVANCE. PRIME
|
||||
1170 ADD 2 TO I. PRIME
|
||||
1180 ** PRIME
|
||||
1190 ** PRIME
|
||||
1200 CROSS-OUT. PRIME
|
||||
1210 MOVE 0 TO ISPRIME (PRODUCT). PRIME
|
||||
1220 ADD J TO PRODUCT. PRIME
|
||||
1230 ** PRIME
|
||||
1240 ** PRIME
|
||||
1250 NEXT-SQUARE. PRIME
|
||||
1260 ADD 1 TO I. PRIME
|
||||
1270 MULTIPLY I BY I GIVING SQRTN. PRIME
|
||||
1280 ** PRIME
|
||||
1290 ** PRIME
|
||||
1300 PRINT. PRIME
|
||||
1310 IF ISPRIME (I) EQUAL TO 1 PRIME
|
||||
1320 MOVE I TO SHOWIT (J) PRIME
|
||||
1330 ADD 1 TO K PRIME
|
||||
1340 ADD 1 TO J PRIME
|
||||
1350 IF J GREATER 20 PRIME
|
||||
1360 DISPLAY OUT-LINE PRIME
|
||||
1370 MOVE BLANK-LINE TO OUT-LINE PRIME
|
||||
1380 MOVE 1 TO J. PRIME
|
||||
1390 IF I GREATER N-2 AND J NOT EQUAL 1 DISPLAY OUT-LINE. PRIME
|
||||
1400 ADD 2 TO I. PRIME
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user