We are interested in collecting the sets of six prime numbers, that having a starting prime p, the following values are also primes forming the sextuplet ```[p, p + 4, p + 6, p + 10, p + 12, p + 16]```

The first sextuplet that we find is ```[7, 11, 13, 17, 19, 23]```

The second one is ```[97, 101, 103, 107, 109, 113]```

Given a number ```sum_limit```, you should give the first sextuplet which sum (of its six primes) surpasses the sum_limit value.

```python
find_primes_sextuplet(70) == [7, 11, 13, 17, 19, 23]

find_primes_sextuplet(600) == [97, 101, 103, 107, 109, 113]
```
Features of the tests:
```
Number Of Tests = 18
10000 < sum_limit < 29700000
```
If you have solved this kata perhaps you will find easy to solve this one:
https://www.codewars.com/kata/primes-with-two-even-and-double-even-jumps/
Enjoy it!!

Source: codewars | Difficulty: EASY
Tags: Dynamic programming

Sorting

Data structures

Mathematics

Starter code: def find_primes_sextuplet(sum_limit):
	

Solutions:
def find_primes_sextuplet(limit):
	for p in [7, 97, 16057, 19417, 43777, 1091257, 1615837, 1954357, 2822707, 2839927, 3243337, 3400207, 6005887]:
		if p * 6 + 48 > limit:
			return [p, p + 4, p + 6, p + 10, p + 12, p + 16]


n = 6005904
sieve = [True] * (n // 2)
for i in range(3, int(n ** 0.5) + 1, 2):
	if sieve[i // 2]:
		sieve[i * i // 2::i] = [False] * ((n - i * i - 1) // (2 * i) + 1)
primes = {2} | {2 * i + 1 for i in range(1, n // 2) if sieve[i]}

def find_primes_sextuplet(limit):
	i = limit // 6 - 8
	p = next((n for n in range(i, i + 10) if n % 10 == 7))
	while not {p, p + 4, p + 6, p + 10, p + 12, p + 16}.issubset(primes):
		p += 10
	return [p, p + 4, p + 6, p + 10, p + 12, p + 16]


A022008 = [7, 97, 16057, 19417, 43777, 1091257, 1615837, 1954357, 2822707, 2839927, 3243337, 3400207, 6005887, 6503587, 7187767, 7641367, 8061997, 8741137, 10526557, 11086837, 11664547, 14520547, 14812867, 14834707, 14856757, 16025827, 16094707, 18916477, 19197247]

def find_primes_sextuplet(n):
	t = (n - 48) // 6
	r = next((x for x in A022008 if x > t))
	return [i + r for i in [0, 4, 6, 10, 12, 16]]


li = [7, 97, 16057, 19417, 43777, 1091257, 1615837, 1954357, 2822707, 2839927, 3243337, 3400207, 6005887, 6503587, 7187767, 7641367, 8061997, 8741137, 10526557, 11086837, 11664547, 14520547, 14812867, 14834707, 14856757, 16025827, 16094707, 18916477, 19197247]
sequences = [[i + j for j in [0, 4, 6, 10, 12, 16]] for i in li]
find_primes_sextuplet = lambda s: next((i for i in sequences if sum(i) > s))


from bisect import bisect
sums = [90, 630, 96390, 116550, 262710, 6547590, 9695070, 11726190, 16936290, 17039610, 19460070, 20401290, 36035370]
result = [[7, 11, 13, 17, 19, 23], [97, 101, 103, 107, 109, 113], [16057, 16061, 16063, 16067, 16069, 16073], [19417, 19421, 19423, 19427, 19429, 19433], [43777, 43781, 43783, 43787, 43789, 43793], [1091257, 1091261, 1091263, 1091267, 1091269, 1091273], [1615837, 1615841, 1615843, 1615847, 1615849, 1615853], [1954357, 1954361, 1954363, 1954367, 1954369, 1954373], [2822707, 2822711, 2822713, 2822717, 2822719, 2822723], [2839927, 2839931, 2839933, 2839937, 2839939, 2839943], [3243337, 3243341, 3243343, 3243347, 3243349, 3243353], [3400207, 3400211, 3400213, 3400217, 3400219, 3400223], [6005887, 6005891, 6005893, 6005897, 6005899, 6005903]]

def find_primes_sextuplet(sum_limit):
	return result[bisect(sums, sum_limit)]


doge = [[7, 11, 13, 17, 19, 23], [97, 101, 103, 107, 109, 113], [16057, 16061, 16063, 16067, 16069, 16073], [19417, 19421, 19423, 19427, 19429, 19433], [43777, 43781, 43783, 43787, 43789, 43793], [1091257, 1091261, 1091263, 1091267, 1091269, 1091273], [1615837, 1615841, 1615843, 1615847, 1615849, 1615853], [1954357, 1954361, 1954363, 1954367, 1954369, 1954373], [2822707, 2822711, 2822713, 2822717, 2822719, 2822723], [2839927, 2839931, 2839933, 2839937, 2839939, 2839943], [3243337, 3243341, 3243343, 3243347, 3243349, 3243353], [3400207, 3400211, 3400213, 3400217, 3400219, 3400223], [6005887, 6005891, 6005893, 6005897, 6005899, 6005903]]

def find_primes_sextuplet(sum_limit):
	for d in doge:
		if sum(d) > sum_limit:
			return d