procedure adp(n) local j, k k := 0 until *n = 1 do { j := 0 every j +:= !n n := j k +:= 1 } return k end