Twin primes are pairs of natural numbers   (P1  and  P2)   that satisfy the following:

     P1   and   P2   are primes
     P1  +  2   =   P2


Task

Write a program that displays the number of pairs of twin primes that can be found under a user-specified number

(P1 < user-specified number & P2 < user-specified number).



Extension

 Find all twin prime pairs under 100000, 10000000 and 1000000000.
 What is the time complexity of the program? Are there ways to reduce computation time?


Examples

> Search Size: 100
> 8 twin prime pairs.

> Search Size: 1000
> 35 twin prime pairs.



Also see

   The OEIS entry: A001097: Twin primes. 
   The OEIS entry: A167874: The number of distinct primes < 10^n which are members of twin-prime pairs. 
   The OEIS entry: A077800: List of twin primes {p, p+2}, with repetition. 
   The OEIS entry: A007508: Number of twin prime pairs below 10^n. 


 
function isPrime(v)
  if v < 2 then return False
  if v mod 2 = 0 then return v = 2
  if v mod 3 = 0 then return v = 3
  d = 5
  while d * d <= v
    if v mod d = 0 then return False else d += 2
  end while
  return True
end function
 
function paresDePrimos(limite)
  p1 = 0
  p2 = 1
  p3 = 1
  cont = 0
  for i = 5 to limite
    p3 = p2
    p2 = p1
    p1 = isPrime(i)
    if (p3 and p1) then cont += 1
  next i
  return cont
end function
 
n = 1
for i = 1 to 6
  n = n * 10
  print "pares de primos gemelos por debajo de < "; n; " : "; paresDePrimos(n)
next i
end
 