17 lines
651 B
Python
17 lines
651 B
Python
>>> def popcount(n): return bin(n).count("1")
|
|
...
|
|
>>> [popcount(3**i) for i in range(30)]
|
|
[1, 2, 2, 4, 3, 6, 6, 5, 6, 8, 9, 13, 10, 11, 14, 15, 11, 14, 14, 17, 17, 20, 19, 22, 16, 18, 24, 30, 25, 25]
|
|
>>> evil, odious, i = [], [], 0
|
|
>>> while len(evil) < 30 or len(odious) < 30:
|
|
... p = popcount(i)
|
|
... if p % 2: odious.append(i)
|
|
... else: evil.append(i)
|
|
... i += 1
|
|
...
|
|
>>> evil[:30]
|
|
[0, 3, 5, 6, 9, 10, 12, 15, 17, 18, 20, 23, 24, 27, 29, 30, 33, 34, 36, 39, 40, 43, 45, 46, 48, 51, 53, 54, 57, 58]
|
|
>>> odious[:30]
|
|
[1, 2, 4, 7, 8, 11, 13, 14, 16, 19, 21, 22, 25, 26, 28, 31, 32, 35, 37, 38, 41, 42, 44, 47, 49, 50, 52, 55, 56, 59]
|
|
>>>
|