def jedynki(liczba): suma = 0 maska = 1 while maska <= liczba: if liczba & maska: suma += 1 maska <<= 1 return suma n = int(input()) liczba = min(n, 120206) ciag = [i for i in range(liczba, 0, -1)] suma = sum(jedynki(i) for i in ciag) i = 0 while suma > n: b = jedynki(ciag[i]) if suma - b >= n: suma -= b ciag.pop(i) else: i += 1 print(len(ciag)) for i in ciag: print(i, end=" ")
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 | def jedynki(liczba): suma = 0 maska = 1 while maska <= liczba: if liczba & maska: suma += 1 maska <<= 1 return suma n = int(input()) liczba = min(n, 120206) ciag = [i for i in range(liczba, 0, -1)] suma = sum(jedynki(i) for i in ciag) i = 0 while suma > n: b = jedynki(ciag[i]) if suma - b >= n: suma -= b ciag.pop(i) else: i += 1 print(len(ciag)) for i in ciag: print(i, end=" ") |