(let loop[[n (read)][sum 0]] (cond [(= n 1) (print sum)] [(odd? n) (loop (+ n 1) (+ sum 1))] [else (loop (ash n -1) (+ sum 1))]))