Toys - Prime Number Neighbors

# Prime number neighbors

r = (2...100)
# Nick Chapman 10/10/2006
primes = r.inject(r){|p, i| p.select{|n| n==i || n%i!=0}}

twin_primes = primes.inject([]) do |t, n|
  n+2 == primes[primes.index(n)+1] ? t<<[n,n+2] : t
end

triplet_primes = primes.inject([]) do |t, n|
  n+2 == primes[primes.index(n)+1] && n+4 == primes[primes.index(n)+2] || \
  n+2 == primes[primes.index(n)+1] && n+6 == primes[primes.index(n)+2] || \
  n+4 == primes[primes.index(n)+1] && n+6 == primes[primes.index(n)+2] ? \
  t << primes[primes.index(n), 3] : t
end

quadruplet_primes = primes.inject([]) do |q, n|
  n+2 == primes[primes.index(n)+1] && \
  n+6 == primes[primes.index(n)+2] && \
  n+8 == primes[primes.index(n)+3] ? \
  q << primes[primes.index(n), 4] : q
end

All twin primes except (3, 5) are of the form 6n+/-1
It is conjectured that there are an infinite number of twin primes

A prime triplet is a prime constellation of the form (p, p+2, p+6), (p, p+4, p+6), etc.
Hardy and Wright (1979, p. 5) conjecture .. that there are infinitely many prime triplets ..

quadruplet_primes of the form (30n+11, 30n+13, 30n+17, 30n+19)