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]) |