a = int(input())
b = []

while a:
    print(a)
    b.append(str(a % 2))
    a = int(a / 2)

print(b)
b.reverse()
print(b)
print(''.join(b))

**'''**
**난뀨님 문의사항(<https://www.inflearn.com/questions/16158>)에 대한 답변**
b = []
while key: 
    b.append(str(key % 2)) 
 #int형은 append가 왜 여기서만 오류가 뜨는 거에요? 
 #답변 -> int형으로 하였을 때 append에서 오류가 뜨진 않고, 
 #답변 -> 아래 join에서 오류가 뜹니다.
    key = int(key / 2)  
 #key는 이미 int인데 왜 int를 한번 더 해주는 건가요? 
 #위에 줄에서 str로 바꿔줬기 때문이라면 int(key / 2)가 아니라 int(key) / 2 
 #이렇게 해야 작동해야 하는거 아닌가요? 
 #답변 -> 슬러쉬가 1개(/)일때 반환형이 float형이어서 그렇습니다.
 #답변 -> //로 해도 좋을 것 같네요.^^
b.reverse() 
print(int(''.join(b)))
'''