C CALCULATE PRIME PAIRS UP TO A GIVEN LIMIT C A PRIME PAIR IS A PAIR OF PRIMES SEPARATED BY 2 C DIMENSION N(4000),NN(5),MM(5) NP=0 NNP=0 WRITE(4,100) 100 FORMAT(' MAXIMUM PRIME SEARCHED FOR? ',) READ(4,101)MAX 101 FORMAT(I6) WRITE(4,102)MAX 102 FORMAT(' SEARCHING FOR PRIME PAIRS UP TO AND INCLUDING',I6)MAX DO 1 I=3,MAX-2,2 IF (J.EQ.0) GOTO 2 DO 3 J=1,NP IF ((I/N(J))*N(J) .EQ. I) GOTO 1 3 CONTINUE C I IS A PRIME - ADD TO LIST C CHECK FOR STORAGE OVERFLOW (PREVENT F4 CRASH) C IF(NP .EQ. 4000) GOTO 10 2 NP=NP+1 N(NP)=I II=I+2 DO 4 J=1,NP IF((II/N(J))*N(J) .EQ. II) GOTO 1 4 CONTINUE C BOTH I AND I+2 ARE PRIME, PRINT THEM C FOR COMPACTNESS PRINT AS AN ARRAY 5 PAIRS WIDE C 5 NNP=NNP+1 NN(NNP)=I MM(NNP)=II IF(NNP.NE.5)GOTO 1 NNP=0 WRITE(4,103)(NN(J),MM(J),J=1,5) 103 FORMAT(5(' ('I5,',',I5,'), ')) 1 CONTINUE C FLUSH THE OUTPUT BUFFER C 11 IF(NNP .NE. 0) WRITE(4,103)(NN(J),MM(J),J=1,NNP) C PRINT A TABLE OF PRIMES FOUND C WRITE(4,200) 200 FORMAT('0LIST OF PRIME NUMBERS CALCULATED:') WRITE(4,300)(N(J),J=1,NP) 300 FORMAT(10(' 'I5,', ')) STOP 10 WRITE(4,201) 201 FORMAT(' STORAGE FOR PRIMES EXHAUSTED') GOTO 11