; next identical popcount
(define (popcount n)
(let loop ((n n) (count 0))
(if (zero? n) count
(loop (logand n (- n 1)) (+ count 1)))))
(define (next n)
(let ((p (popcount n)))
(do ((n (+ n 1) (+ n 1)))
((= (popcount n) p) n))))
(display (next 15)) (newline)
(display (next 23)) (newline)
OyBuZXh0IGlkZW50aWNhbCBwb3Bjb3VudAoKKGRlZmluZSAocG9wY291bnQgbikKICAobGV0IGxvb3AgKChuIG4pIChjb3VudCAwKSkKICAgIChpZiAoemVybz8gbikgY291bnQKICAgICAgKGxvb3AgKGxvZ2FuZCBuICgtIG4gMSkpICgrIGNvdW50IDEpKSkpKQoKKGRlZmluZSAobmV4dCBuKQogIChsZXQgKChwIChwb3Bjb3VudCBuKSkpCiAgICAoZG8gKChuICgrIG4gMSkgKCsgbiAxKSkpCiAgICAgICAgKCg9IChwb3Bjb3VudCBuKSBwKSBuKSkpKQoKKGRpc3BsYXkgKG5leHQgMTUpKSAobmV3bGluZSkKKGRpc3BsYXkgKG5leHQgMjMpKSAobmV3bGluZSk=