A truncatable prime is a prime number that when you successively remove digits from one end of the prime, you are left with a new prime number.



Examples

The number 997 is called a left-truncatable prime as the numbers 997, 97, and 7 are all prime.

The number 7393 is a right-truncatable prime as the numbers 7393, 739, 73, and 7 formed by removing digits from its right are also prime.

No zeroes are allowed in truncatable primes.



Task

The task is to find the largest left-truncatable and right-truncatable primes less than one million (base 10 is implied).



Related tasks
 
 Find largest left truncatable prime in a given base
 Sieve of Eratosthenes


See also

 Truncatable Prime from MathWorld.]


leftTruncatable?: function [n][
    every? map 0..(size s)-1 'z -> to :integer slice s z (size s)-1
                                => prime?
]
 
rightTruncatable?: function [n][
    every? map 0..(size s)-1 'z -> to :integer slice s 0 z
                                => prime?
]
 
upperLimit: 999999
 
loop range upperLimit .step:2 0 'x [
    s: to :string x
    if and? not? contains? s "0"
            leftTruncatable? x [
        print ["highest left-truncatable:" x]
        break
    ]
]
 
loop range upperLimit .step:2 0 'x [
    s: to :string x
    if and? not? contains? s "0"
            rightTruncatable? x [
        print ["highest right-truncatable:" x]
        break
    ]
]