user
The Mian–Chowla sequence is an integer sequence defined recursively.

Mian–Chowla is an infinite instance of a Sidon sequence, and belongs to the class known as B₂ sequences.

The sequence starts with:

:   :   a1 = 1

then for n > 1, an is the smallest positive integer such that every pairwise sum

:   :   ai + aj

is distinct, for all i and j less than or equal to n.

The Task

:   * Find and display, here, on this page the first 30 terms of the Mian–Chowla sequence.
    * Find and display, here, on this page the 91st through 100th terms of the Mian–Chowla sequence.

Demonstrating working through the first few terms longhand:

:   :   a1 = 1

:   :   1 + 1 = 2

Speculatively try a2 = 2

:   :   1 + 1 = 2
    :   1 + 2 = 3
    :   2 + 2 = 4

There are no repeated sums so **2** is the next number in the sequence.

Speculatively try a3 = 3

:   :   1 + 1 = 2
    :   1 + 2 = 3
    :   1 + 3 = 4
    :   2 + 2 = 4
    :   2 + 3 = 5
    :   3 + 3 = 6

Sum of **4** is repeated so **3** is rejected.

Speculatively try a3 = 4

:   :   1 + 1 = 2
    :   1 + 2 = 3
    :   1 + 4 = 5
    :   2 + 2 = 4
    :   2 + 4 = 6
    :   4 + 4 = 8

There are no repeated sums so **4** is the next number in the sequence.

And so on...

See also

:   * OEIS:A005282 Mian-Chowla sequence
assistant
(formerly Perl 6)

```
my @mian-chowla = 1, |(2..Inf).map: -> $test {
    state $index = 1;
    state %sums  = 2 => 1;
    my $next;
    my %these;
    @mian-chowla[^$index].map: { ++$next and last if %sums{$_ + $test}:exists; ++%these{$_ + $test} };
    next if $next;
    ++%sums{$test + $test}; 
    %sums.push: %these;
    ++$index;
    $test
};

put "First 30 terms in the Mian–Chowla sequence:\n", @mian-chowla[^30];
put "\nTerms 91 through 100:\n", @mian-chowla[90..99];

```

Output:

```
First 30 terms in the Mian–Chowla sequence:
1 2 4 8 13 21 31 45 66 81 97 123 148 182 204 252 290 361 401 475 565 593 662 775 822 916 970 1016 1159 1312

Terms 91 through 100:
22526 23291 23564 23881 24596 24768 25631 26037 26255 27219
```