%I #28 Jun 19 2024 15:07:30
%S 3,5,7,23,53,157,173,211,257,263,373,563,593,607,653,733,947,977,1103,
%T 1123,1187,1223,1367,1511,1747,1753,1907,2287,2417,2677,2903,2963,
%U 3307,3313,3637,3733,4013,4409,4457,4597,4657,4691,4993,5107,5113,5303,5387,5393
%N Primes which are the nearest integer to the geometric mean of the previous prime and the following prime.
%C The geometric mean of two primes p and q is sqrt(pq).
%H Harvey P. Dale, <a href="/A216124/b216124.txt">Table of n, a(n) for n = 1..1000</a>
%e The prime before 3 is 2 and the prime after 3 is 5. 2 * 5 = 10 and the geometric mean of 2 and 5 is therefore sqrt(10) = 3.16227766..., which rounds to 3. Therefore 3 is in the sequence.
%e The geometric mean of 7 and 13 is 9.539392... which rounds up to 10, well short of 11, hence 11 is not in the sequence.
%p A := {}: for n from 2 to 1000 do p1 := ithprime(n-1): p := ithprime(n); p2 := ithprime(n+1): if p = round(sqrt(p1*p2)) then A := `union`(A, {p}) end if end do; A := A;
%t Prime[Select[Range[2, 700], Prime[#] == Round[Sqrt[Prime[# - 1] Prime[# + 1]]] &]] (* _Alonso del Arte_, Sep 01 2012 *)
%t Select[Partition[Prime[Range[750]],3,1],Round[GeometricMean[{#[[1]],#[[3]]}]]==#[[2]]&][[;;,2]] (* _Harvey P. Dale_, Feb 28 2024 *)
%o (PARI) lista(nn) = forprime (p=2, nn, if (round(sqrt(precprime(p-1)*nextprime(p+1))) == p, print1(p, ", "))); \\ _Michel Marcus_, Apr 08 2015
%o (Python)
%o from math import isqrt
%o from itertools import islice
%o from sympy import nextprime, prevprime
%o def A216124_gen(startvalue=3): # generator of terms >= startvalue
%o q = max(3,nextprime(startvalue-1))
%o p = prevprime(q)
%o r = nextprime(q)
%o while True:
%o if q == (m:=isqrt(k:=p*r))+(k-m*(m+1)>=1):
%o yield q
%o p, q, r = q, r, nextprime(r)
%o A216124_list = list(islice(A216124_gen(),20)) # _Chai Wah Wu_, Jun 19 2024
%Y Cf. A216101, A090076.
%K nonn
%O 1,1
%A _César Eliud Lozada_, Sep 01 2012
%E More terms from _Michel Marcus_, Apr 08 2015