I looked at the video, and looks like he is running for 5 seconds, but cannot 
tell how many prime numbers he calculated on the platforms he was testing.   I 
had an old COBOL program laying around from years ago that calculates prime 
numbers.   This morning I cranked it up to a limit of 50,000,000 and it 
completed in 6 seconds.  This is on enterprise cobol 6 on z15.

PGM-NAME   EXCP    CPU    SRB  CLOCK
PRIMECB6  17971    .08    .00    .11

000100 IDENTIFICATION DIVISION.                                    
000200 PROGRAM-ID.  PRIMECOB.                                      
000300*  EXAMPLE OF IN-LINE PERFORMS, END-IF, INITIALIZE STATEMENTS
000400 DATA DIVISION.                                              
000500 WORKING-STORAGE SECTION.                                    
000600 01  NUMBER-ARRAY.                                           
000700     05 NA-LINE OCCURS 50000000.                             
000700*    05 NA-LINE OCCURS 3355440.                              
000710*    05 NA-LINE OCCURS 26214.                                
000720*  ABOVE OCCURS CLAUSE IS LARGEST THAT WILL WORK FOR COBOL/VS
000800         10 NA-NUMBER                 PIC X.                 
000900             88 IS-PRIME                         VALUE '1'.  
001000             88 IS-NOT-PRIME                     VALUE ZERO. 
001100         10 NA-PROOF                  PIC S9(8)  BINARY.     
001200 01  CANDIDATE                        PIC S9(8)  BINARY.     
001300 01  CPRIME                           PIC S9(8)  BINARY.     
001400 01  ARRAY-SIZE                       PIC S9(8)  BINARY.     
001500                                                             
001600 PROCEDURE DIVISION.                                         
001700 MAINLINE.                                                   
001800     INITIALIZE NUMBER-ARRAY REPLACING ALPHANUMERIC BY '1'   
001900     INITIALIZE NUMBER-ARRAY REPLACING NUMERIC BY ZERO       
000200                                                              
002100     COMPUTE ARRAY-SIZE = LENGTH OF NUMBER-ARRAY / 5          
002200                                                              
002300     PERFORM VARYING CPRIME FROM 2 BY 1                       
002400         UNTIL CPRIME > ARRAY-SIZE                            
002500         IF IS-PRIME (CPRIME)                                 
002600             COMPUTE CANDIDATE = CPRIME + CPRIME              
002700             PERFORM UNTIL CANDIDATE > ARRAY-SIZE             
002800                 SET IS-NOT-PRIME(CANDIDATE) TO TRUE          
002900                 MOVE CPRIME TO NA-PROOF(CANDIDATE)           
003000                 ADD CPRIME TO CANDIDATE                      
003100             END-PERFORM                                      
003200         END-IF                                               
003300     END-PERFORM                                              
003400                                                              
003500     PERFORM VARYING CANDIDATE FROM 1 BY 1                    
003600         UNTIL CANDIDATE > ARRAY-SIZE                         
003700         IF IS-PRIME (CANDIDATE)                              
003800             DISPLAY CANDIDATE ' IS PRIME'                    
003900*        ELSE                                                 
004000*            DISPLAY CANDIDATE ' DIVISIBLE BY '               
004100*                NA-PROOF(CANDIDATE)                          
004200         END-IF                                               
004300     END-PERFORM.            
004400     STOP RUN.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to