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. 


tp=: 3 : '+/ (*. _2&(|.!.0)) 1 p: i. y'
 
NB. 3 : ''     explicitly define a "monad" (a one-argument function)
NB. i. y       list integers up to the provided argument
NB. 1 p:       create list of 0s, 1s where those ints are prime
NB. _2&(|.!.0) "shift" that list to the right by two, filling left side with 0 
NB. (*. g) y   create a "hook". "and" together the original and shifted lists
NB.            the result will have a 1 only if that i, and i-2, are both prime
NB. +/         sum the and-ed list (get the number of twin pairs)