```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var t int
fmt.Fscan(in, &t)
for i := 0; i < t; i++ {
var n int
fmt.Fscan(in, &n)
cnt := 0
minOps := 32
for j := 0; j < n; j++ {
var a int
fmt.Fscan(in, &a)
if a%2 == 0 {
cnt++
ops := 0
for a%2 == 0 {
a >>= 1
ops++
}
if ops < minOps {
minOps = ops
}
}
}
if cnt == n {
fmt.Fprintln(out, minOps+cnt-1)
} else {
fmt.Fprintln(out, cnt)
}
}
}
```