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(Byval ValorEval As Integer) As Boolean
    If ValorEval <=1 Then Return False
    For i As Integer = 2 To Int(Sqr(ValorEval))
        If ValorEval Mod i = 0 Then Return False
    Next i
    Return True
End Function
 
Function paresDePrimos(limite As Uinteger) As Uinteger
    Dim As Uinteger p1 = 0, p2 = 1, p3 = 1, count = 0
    For i As Uinteger = 5 To limite
        p3 = p2
        p2 = p1
        p1 = isPrime(i)
        If (p3 And p1) Then count += 1
    Next i
    Return count
End Function
 
Dim As Uinteger n = 1
For i As Byte = 1 To 6
    n *= 10
    Print Using "pares de primos gemelos por debajo de < ####### : ####"; n; paresDePrimos(n)
Next i
Print !"\n--- terminado, pulsa RETURN---"
Sleep
 