import collections
n = int(input())
lista2 = []
suma = 0
i2 = 1
while True:
lista2.append(i2)
suma += collections.Counter(bin(i2)[2:])['1']
if suma == n:
lista2 = list(reversed(lista2))
break
if suma > n:
lista2 = list(reversed(lista2))
przekroczono = suma - n
for i in range(len(lista2)):
if collections.Counter(bin(lista2[i])[2:])['1'] == przekroczono:
del(lista2[i])
break
break
i2+=1
print(len(lista2))
for i in range(len(lista2)):
if i != len(lista2)-1:
print(lista2[i], end=' ')
else:
print(lista2[i])
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 | import collections n = int(input()) lista2 = [] suma = 0 i2 = 1 while True: lista2.append(i2) suma += collections.Counter(bin(i2)[2:])['1'] if suma == n: lista2 = list(reversed(lista2)) break if suma > n: lista2 = list(reversed(lista2)) przekroczono = suma - n for i in range(len(lista2)): if collections.Counter(bin(lista2[i])[2:])['1'] == przekroczono: del(lista2[i]) break break i2+=1 print(len(lista2)) for i in range(len(lista2)): if i != len(lista2)-1: print(lista2[i], end=' ') else: print(lista2[i]) |
English