blob: 83820190dea934913194e2c0a9d8a714d36a898c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
""" Challenge 155 LK Python Task 1"""
from sympy import isprime, nextprime
def get_pn(what: int) -> int:
"""Get the pn needed for the formula"""
last_num = 1
pn = 1
for _ in range(1, what + 1):
last_num = nextprime(last_num)
pn *= last_num
return pn
def find_fortunate_num(what: int) -> int:
"""Find the respective fortunate number"""
num = 2
while not isprime(what + num):
num += 1
return num
def get_n_fortunate_nums(what: int) -> list:
"""Find the task solution"""
fortunate_nums = []
# * 2 number should be more than enough
for i in range(1, what * 2):
pn = get_pn(i)
fortunate = find_fortunate_num(pn)
fortunate_nums.append(fortunate)
fortunate_nums = list(sorted(set(fortunate_nums)))
return fortunate_nums[0 : what + 1]
assert get_n_fortunate_nums(7) == [3, 5, 7, 13, 17, 19, 23, 37]
|