← Home
```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

var rdr = bufio.NewReaderSize(os.Stdin, 1<<20)

func nextInt64() int64 {
	var sign int64 = 1
	var val int64 = 0
	c, _ := rdr.ReadByte()
	for (c < '0' || c > '9') && c != '-' {
		c, _ = rdr.ReadByte()
	}
	if c == '-' {
		sign = -1
		c, _ = rdr.ReadByte()
	}
	for c >= '0' && c <= '9' {
		val = val*10 + int64(c-'0')
		c, _ = rdr.ReadByte()
	}
	return val * sign
}

func main() {
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	t := int(nextInt64())
	for ; t > 0; t-- {
		n := int(nextInt64())
		seen := make(map[int64]struct{})
		ans := 0
		for i := 0; i < n; i++ {
			x := nextInt64()
			for x%2 == 0 {
				if _, ok := seen[x]; !ok {
					seen[x] = struct{}{}
					ans++
				}
				x /= 2
			}
		}
		fmt.Fprintln(out, ans)
	}
	out.Flush()
}
```