This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
%I A363074 #41 Jul 05 2023 12:19:53 %S A363074 23,29,37,53,61,67,73,89,103,113,131,137,157,173,211,251,277,293,307, %T A363074 337,379,409,449,461,487,491,499,503,523,569,617,631,661,683,701,719, %U A363074 727,751,769,787,919,941,953,991,1009,1019,1039,1051,1063,1117,1153,1193,1201,1223,1259,1279,1289,1381,1399 %N A363074 Prime numbers that are the exact average of two consecutive odd semiprimes. %e A363074 23 is a term because (21 + 25)/2 = 23 is prime. %e A363074 29 is a term because (25 + 33)/2 = 29 is prime. %t A363074 Select[Plus @@@ Partition[Select[Range[1, 1410, 2], PrimeOmega[#] == 2 &], 2, 1] / 2, PrimeQ] (* _Amiram Eldar_, May 21 2023 *) %o A363074 (Python) %o A363074 from itertools import count, islice %o A363074 from sympy import factorint, isprime %o A363074 def semiprime(n): return sum(e for e in factorint(n).values()) == 2 %o A363074 def nextoddsemiprime(n): return next(k for k in count(n+1+(n&1), 2) if semiprime(k)) %o A363074 def agen(): # generator of terms %o A363074 osp = [9, 15] %o A363074 while True: %o A363074 q, r = divmod(sum(osp), len(osp)) %o A363074 if r == 0 and isprime(q): %o A363074 yield q %o A363074 osp = osp[1:] + [nextoddsemiprime(osp[-1])] %o A363074 print(list(islice(agen(), 59))) # _Michael S. Branicky_, May 21 2023 %Y A363074 Cf. A000040, A046315. %Y A363074 Cf. A363187, A363188. %K A363074 nonn %O A363074 1,1 %A A363074 _Elmo R. Oliveira_, May 20 2023