In [1]:
import primesieve
import numpy as np
N = 10**8
M = int(N**0.5)
arr = np.zeros((N + 1), dtype=bool)
primes = set(primesieve.primes(N+1))
for d in range(1, M + 1):
for e in range(d, N // d + 1):
if (d + e) not in primes:
arr[d * e] = 1
print(sum(n for n in range(N + 1) if arr[n] == 0))
Note: This program runs for over nine minutes on my machine, so I should probably find a more efficient algorithm.
In [ ]: