aboutsummaryrefslogtreecommitdiff
path: root/challenge-144/lubos-kolouch/python/ch-2.py
blob: a27d2b676e08ec22ec0016e2ae2f7215b2a2ec32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def ulam_sequence(u, v, n=10):
    sequence = [u, v]
    while len(sequence) < n:
        sums = {
            sequence[i] + sequence[j]: 0
            for i in range(len(sequence))
            for j in range(i + 1, len(sequence))
        }
        for i in range(len(sequence)):
            for j in range(i + 1, len(sequence)):
                sums[sequence[i] + sequence[j]] += 1
        next_val = min(x for x in sums if sums[x] == 1 and x > sequence[-1])
        sequence.append(next_val)
    return sequence


print(ulam_sequence(1, 2))
print(ulam_sequence(2, 3))
print(ulam_sequence(2, 5))