Consider an array that has no prime numbers, and none of its elements has any prime digit. It would start with: `[1,4,6,8,9,10,14,16,18,..]`. 
`12` and `15` are not in the list because `2` and `5` are primes.
You will be given an integer `n` and your task will be return the number at that index in the array. 
For example:
```
solve(0) = 1
solve(2) = 6
``` 
More examples in the test cases.
Good luck!
If you like Prime Katas, you will enjoy this Kata: [Simple Prime Streaming](https://www.codewars.com/kata/5a908da30025e995880000e3)
from itertools import compress
def sieve(n): 
    n += 1
    r = [False,True] * (n//2) + [True] 
    r[1] = False
    r[2] = True 
    for i in range(3,int(n**.5)+1,2): 
        if r[i]: 
            r[i*i::2*i] = [False] * ((n+2*i-1-i*i)//(2*i))
    r = list(compress(range(len(r)),r))
    if r[-1] %2 == 0:
        return r[:-1]
    return r

primes = set(sieve(10**6))
res = [] 
factors = {'2','3','5','7'}
for i in range(1,10**6): 
    if i not in primes and set(str(i)).isdisjoint(factors): 
        res.append(i)

def solve(n):
    return res[n] 
from itertools import compress
def sieve(n): 
    n += 1
    r = [False,True] * (n//2) + [True] 
    r[1] = False
    r[2] = True 
    for i in range(3,int(n**.5)+1,2): 
        if r[i]: 
            r[i*i::2*i] = [False] * ((n+2*i-1-i*i)//(2*i))
    r = list(compress(range(len(r)),r))
    if r[-1] %2 == 0:
        return r[:-1]
    return r

primes = set(sieve(10**6))
res = [] 
factors = {'2','3','5','7'}
for i in range(1,10**6): 
    if i not in primes and set(str(i)).isdisjoint(factors): 
        res.append(i)

def solve(n):
    return res[n] 