OPTION STRICT: OPTION DEFINT VAR MAX_G = 4000, MAX_P = 1000000 VAR ROOT_MAX_P = FLOOR(SQR(MAX_P)) VAR HALF_MAX_G = MAX_G DIV 2 VAR G[MAX_G + 1], P[MAX_P + 1] VAR I, J CLS: GCLS P[0] = FALSE: P[1] = 0: P[2] = TRUE FOR I = 4 TO MAX_P STEP 2 P[I] = FALSE: NEXT FOR I = 3 TO MAX_P STEP 2 P[I] = TRUE: NEXT FOR I = 3 TO ROOT_MAX_P STEP 2 IF P[I] THEN FOR J = I * I TO MAX_P STEP I P[J] = FALSE NEXT ENDIF NEXT FOR I = 1 TO MAX_G G[I] = 0: NEXT G[4] = 1 ' 4 is the only sum of 2 even primes FOR I = 3 TO HALF_MAX_G STEP 2 IF P[I] THEN INC G[I + 1] FOR J = I + 2 TO MAX_G - 1 IF P[J] THEN INC G[I + 1] ENDIF NEXT ENDIF NEXT VAR C = 0 FOR I = 4 TO 202 STEP 2 PRINT FORMAT$("%3D", G[I]), INC C IF C == 10 THEN PRINT: C = 0: ENDIF NEXT VAR GM = 0 FOR I = 3 TO MAX_P DIV 2 STEP 2 IF P[I] THEN IF P[MAX_P - I] THEN INC GM: ENDIF ENDIF NEXT PRINT FORMAT$("G(%D): ", MAX_P); GM FOR I = 2 TO MAX_G - 10 STEP 10 FOR J = 1 TO I + 8 STEP 2 GPSET I DIV 10, 240-G[J],RGB(255,255,255) NEXT NEXT