CodeEff/ECCO huggingface dataset:
# Original solution
def factorization(n):
    arr = []
    temp = n
    for i in range(2, int(-(-n**0.5//1))+1):
        if temp % i == 0:
            cnt = 0
            while temp % i == 0:
                cnt += 1
                temp //= i
            arr.append([i, cnt])

    if temp != 1:
        arr.append([temp, 1])

    if arr == []:
        arr.append([n, 1])

    return arr


def main():
    n = int(eval(input()))
    As = list(map(int, input().split()))

    ans = 0
    for i in range(n):
        if factorization(As[i])[0][0] == 2:
            ans += factorization(As[i])[0][1]
    print(ans)


if __name__ == "__main__":
    main()


# Optimized solution
def main():
    n = int(eval(input()))
    As = list(map(int, input().split()))

    ans = 0
    for i in range(n):
        temp = As[i]
        if temp % 2 == 0:
            cnt = 0
            while temp % 2 == 0:
                cnt += 1
                temp //= 2
            ans += cnt

    print(ans)


if __name__ == "__main__":
    main()
# Original solution
import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines

# 素因数分解
def factorization(n):
    arr = []
    temp = n
    for i in range(2, int(-(-n**0.5//1))+1):
        if temp % i == 0:
            cnt = 0
            while temp % i == 0:
                cnt += 1
                temp //= i
            arr.append([i, cnt])
    if temp != 1:
        arr.append([temp, 1])
    if arr == []:
        arr.append([n, 1])
    return arr

n, *a = list(map(int, read().split()))

ans = 0
for x in a:
    arr = factorization(x)
    for y in arr:
        if y[0] == 2:
            ans += y[1]
print(ans)

# Optimized solution
import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines

n, *a = list(map(int, read().split()))

ans = 0
for x in a:
    while x % 2 == 0:
        x = x // 2
        ans += 1

print(ans)
# Original solution
n = int(eval(input()))
a = list(map(int, input().split()))

ans = 0
for i in a:
    while i % 32 == 0:
        i //= 32
        ans += 5
    while i % 2 == 0:
        i //= 2
        ans += 1

print(ans)

# Optimized solution
n = int(eval(input()))
a = list(map(int, input().split()))

ans = 0
for i in a:
    while i % 2 == 0:
        i //= 2
        ans += 1

print(ans)
# Original solution
n=int(eval(input()))
a=list(map(int,input().split()))

ans=0
for i in a:
  while i%2==0:
    i//=2
    ans+=1

print(ans)

# Optimized solution
n=int(eval(input()))
a=list(map(int,input().split()))

ans=0
for i in a:
  while i%2==0:
    ans+=1
    i//=2
print(ans)
# Original solution
#!/usr/bin/env python3
n, *a = list(map(int, open(0).read().split()))
c = 0
for i in a:
    b = bin(i)
    c += len(b) - 1 - b.rfind('1')
print(c)


# Optimized solution
#!/usr/bin/env python3
print((sum(bin(i)[::-1].find("1") for i in [*list(map(int, open(0).read().split()))][1:])))
# Original solution
def prime(n): # nまでの素数を列挙
    import math
    if n == 1:
        return []
    else:
        num_list = [i + 1 for i in range(2,n,2)]
        list_prime = [2]
        limit = math.sqrt(n)
        if n == 2:
            return list_prime
        else:
            while True:
                p = num_list[0]
                if p >= limit:
                    return list_prime + num_list
                list_prime.append(p)
                num_list = [num for num in num_list if num % p != 0]


def primeFactorization(n):
    import math
    if n == 1:
        return {}
    else:
        list_prime = prime(int(math.sqrt(n)))
        i = 0
        dict_pF = {}
        dict_primeFactorization = {}
        for pri in list_prime:
            dict_pF[pri] = 0
        while True:
            if n == 1:
                for key, value in list(dict_pF.items()):
                    if value != 0:
                        dict_primeFactorization[key] = value
                return dict_primeFactorization
            elif i >= len(list_prime):
                dict_pF[n] = 1
                for key, value in list(dict_pF.items()):
                    if value != 0:
                        dict_primeFactorization[key] = value
                return dict_primeFactorization
            p = list_prime[i]
            if n % p == 0:
                n //= p
                dict_pF[p] += 1
                continue
            else:
                i += 1

n = int(eval(input()))
list_a = list((list(map(int, input().split()))))

ans = 0
for number in list_a:
    try:
        ans += primeFactorization(number)[2]
    except:
        pass

print(ans)


# Optimized solution
n = int(eval(input()))
list_a = list((list(map(int, input().split()))))

factor2 = 0
for number in list_a:
    while number % 2 == 0:
        number /= 2
        factor2 += 1

print(factor2)
# Original solution
n = int(eval(input()))
a = list(map(int,input().split()))
ans = 1
for i in range(n):
  ans *= a[i]
cnt = 0
while True:
  if ans % 2 == 0:
    ans //= 2
    cnt += 1
  else:
    print(cnt)
    break

# Optimized solution
n = int(eval(input()))
a = list(map(int,input().split()))
cnt = 0
for i in range(n):
  now = a[i]
  while True:
    if now % 2 == 0:
      now //= 2
      cnt += 1
    else:
      break
print(cnt)
# Original solution
from collections import Counter

def prime_decomposition(n):
	i=2
	table=[]
	while i*i <= n:
		while n%i == 0:
			n /= i
			table.append(i)
		i += 1
	if n > 1:
		table.append(n)
	return table

n=int(eval(input()))
a=list(map(int,input().split()))
ans_table = []
for i in a:
	ans_table.extend(prime_decomposition(i))
print((Counter(ans_table)[2]))

# Optimized solution
N=eval(input())
lst=list(map(int,input().split()))
ans=0
for i in lst:
	while i%2 == 0:
		i //= 2
		ans += 1
print(ans)
# Original solution
from math import log2

N = int(eval(input()))
a = list(map(int, input().split()))

ans = 0

for i in range(len(a)):
    tmp = a[i]
    while a[i]%2 != 1:
        if a[i]%2 == 0:
            ans += 1
            a[i] /= 2
print(ans)


# Optimized solution
from math import log2

N = int(eval(input()))
a = list(map(int, input().split()))

ans = 0

for i in range(len(a)):
    while a[i]%2 != 1:
        ans += 1
        a[i] /= 2
print(ans)
# Original solution
import sys
input = sys.stdin.readline

N = int(eval(input()))
L = [int(v) for v in input().split()]

ans = 0

for v in L:
    c = 0
    while v % (2 ** (c + 1)) == 0:
        c += 1
    ans += c

print(ans)

# Optimized solution
import sys
input = sys.stdin.readline

N, = list(map(int, input().split()))
L = [int(v) for v in input().split()]

ans = 0
for v in L:
    while v % 2 == 0:
        ans += 1
        v = v // 2
print(ans)
# Original solution
import math

n = int(eval(input()))

array = [int(x) for x in input().split()]

res = 0
for i in array:
    if i %2 == 0:
        while True:
            res += 1
            i /= 2
            if i % 2 != 0:
                break
print(res)




# Optimized solution
n = int(eval(input()))
divide_dict = {0:1,2:1,4:2,6:1,8:3}
array = [int(x) for x in input().split()]
res = 0
for num in array:
    if num % 2 != 0:
        continue
    else:
        while num % 2 == 0:
            res += 1
            num /= 2
print(res)
# Original solution
n = int(eval(input()))
a = list(map(int,input().split()))
cnt = 0
total = 0
while cnt != len(a):
    cnt = 0
    for i in range(len(a)):
        if a[i] % 2 == 0:
            a[i] //= 2
            total += 1
            break
        else:
            cnt += 1
print(total)

# Optimized solution
n = int(eval(input()))
a = list(map(int,input().split()))
total = 0
for i in range(len(a)):
    while a[i] % 2 == 0:
        total += 1
        a[i] //= 2
print(total)
# Original solution
N = int(eval(input()))
a = list(map(int, input().split()))
ans = 0
for i in a:
    while (1):
        if i % 2 == 1:
            break
        i /= 2
        ans += 1
print(ans)

# Optimized solution
N = int(eval(input()))
a = list(map(int, input().split()))
ans = 0
for x in a:
    while(True):
        if x & 1:
            break
        x >>= 1
        ans += 1
print(ans)
# Original solution
N = int(eval(input()))
a_list = list(map(int, input().split()))

#偶数のaだけ取り出す
a_even = []
for a in a_list:
	if a % 2 == 0:
		a_even.append(a)

times = 0

while len(a_even) > 0:
	a_even[0] /= 2
	times += 1

	if a_even[0] % 2 == 1:
		a_even.pop(0)
	else:
		a = [a_even[0]] + [i*2 for i in a_even[1:]]

print(times)

# Optimized solution
N = int(eval(input()))
a_list = list(map(int, input().split()))

#偶数のaだけ取り出す
a_even = []
for a in a_list:
	if a % 2 == 0:
		a_even.append(a)

times = 0

while len(a_even) > 0:
	a_even[0] /= 2
	times += 1

	if a_even[0] % 2 == 1:
		a_even.pop(0)

print(times)
# Original solution
N = int(eval(input()))
A = list(map(int, input().split()))


num_list = []

cnt = 0

while True:
    even_count = 0
    #print(A)

    if not "even" in list(["even" if x % 2 == 0 else "odd" for x in A]):
        break

    for index, num in enumerate(A):
        if not even_count == 1 and num % 2 == 0:
            num = num//2
            even_count += 1
            A[index] = num

        else:
            num = num * 3
            A[index] = num

    cnt += 1

print(cnt)

# Optimized solution
N = int(eval(input()))
A = list(map(int, input().split()))



cnt = 0

for num in range(N):
    while A[num] % 2 ==0:
        cnt += 1
        A[num] //= 2
        
print(cnt)
# Original solution
from collections import Counter
def prime_factorize(n):
    a = []
    while n % 2 == 0:
        a.append(2)
        n //= 2
    f = 3
    while f * f <= n:
        if n % f == 0:
            a.append(f)
            n //= f
        else:
            f += 2
    if n != 1:
        a.append(n)
    return a

def twonum(n):
    count = Counter(prime_factorize(n))
    return count[2]

n = int(eval(input()))
ali = list(map(int, input().split()))
twos = []
for a in ali:
    twos.append(twonum(a))
print((sum(twos)))

# Optimized solution
n = int(eval(input()))
ali = list(map(int, input().split()))
total = 0
for a in ali:
    while a%2==0:
        a = (a//2)
        total += 1
print(total)
# Original solution
import math
def q77(N, a):
    i = 0
    o = 0
    while True:
        b = False
        for j in range(o, N):
            a[j] = a[j]/2
            if a[j].is_integer():
                i += 1
                b = True
                break
            else:
                o = j
        if not b:
            break
    return i

N = int(eval(input()))
a = [int(i) for i in input().split()]

print((q77(N, a)))

# Optimized solution
def q77(N, a):
    i = 0
    for b in a:
        while True:
            b = b/2
            if not b.is_integer():
                break
            else:
                i += 1
    return i

N = int(eval(input()))
a = [int(i) for i in input().split()]

print((q77(N, a)))
# Original solution
n = int(eval(input()))
l = list(map(int, input().split()))

ans = 0
flag = 1
i = 1
while flag:
  y = 2**i
  m = list([x%y for x in l])
  if 0 in m:
    ans += m.count(0)
    i += 1
  else:
    flag = 0
print(ans)

# Optimized solution
n = int(eval(input()))
A = list(map(int, input().split()))
ans = 0
for i in range(n):
    a = A[i]
    ans += format(a, 'b')[::-1].find('1')
print(ans)
# Original solution
n = int(eval(input()))
a = list(map(int, input().split()))

ans = 0
while True:
  if all(i%2==1 for i in a): break
  ans += 1
  t = 0
  for i in range(n):
    if a[i]%2 == 1: a[i] *= 3
    else:
      if t == 0 and a[i] != 2:
        a[i] //= 2
        t += 1
      else: a[i] *= 3

print(ans)

# Optimized solution
n = int(eval(input()))
a = list(map(int, input().split()))

ans = 0
for i in a:
  while i%2==0:
    i//=2
    ans+= 1
print(ans)
# Original solution
n = int(eval(input()))
a = sorted(list(map(int, input().split())))

ans = 0
t = 1
while t != 0:
  t = 0
  for i in range(n-1, -1 ,-1):
    if t == 0 and a[i]%2 == 0 and a[i] != 2:
      a[i] //= 2
      t += 1
      ans += 1
    else: a[i] *= 3
print(ans)

# Optimized solution
n = int(eval(input()))
a = list(map(int, input().split()))

ans = 0
for i in a:
  while i%2==0:
    i //= 2
    ans += 1
print(ans)
# Original solution
n = int(eval(input()))
a = sorted(list(map(int, input().split())))

ans = 0
flag = True
while flag:
  flag = False
  for i in range(n-1, -1, -1):
    if not flag and a[i]%2 == 0:
      flag = True
      ans += 1
      a[i] //= 2
    else: a[i] *= 3
print(ans)

# Optimized solution
n = int(eval(input()))
a = sorted(list(map(int, input().split())))

ans = 0
for i in a:
  if i%2 == 0:
    while i%2 == 0:
      ans += 1
      i //= 2
print(ans)
# Original solution
N = int(eval(input()))
A = list(map(int,input().split()))

ans = 0
for i in range(N):
  while A[i]%2 == 0:
    ans += 1
    A[i] = A[i]//2
print(ans)



# Optimized solution
N = int(eval(input()))
A = list(map(int,input().split()))
Flag = True
for x in A:
  if x%2 != 1:
    Flag = False
    break
if Flag:
  print((0))
  exit()
ans = 0
for x in A:
  while x%2 == 0:
    ans += 1
    x = x//2
print(ans)
# Original solution
n=int(eval(input()))
#a,b=map(int,input().split())
al=list(map(int,input().split()))
#l=[list(map(int,input().split())) for i in range(n)]
count=0
for a in al:
    temp=0
    v=a
    while v%2==0:
        v=v//2
        temp+=1
    count+=temp

print(count)



# Optimized solution
n=int(eval(input()))
#a,b,n=map(int,input().split())
al=list(map(int,input().split()))
#l=[list(map(int,input().split())) for i in range(n)]

def div2(v):
    res=0
    if v==0:
        return res
    while v%2==0:
        v=v//2
        res+=1
    return res
ans=0
for ai in al:
    ans+=div2(ai)
print(ans)
# Original solution
# -*- coding: utf-8 -*-
# AtCoder Beginner Contest


if __name__ == '__main__':
    n = int(eval(input()))
    a = list(map(int, input().split()))
    count = 0

    # See:
    # https://beta.atcoder.jp/contests/abc100/submissions/2675457
    for ai in a:
        while ai % 2 == 0:
            ai //= 2
            count += 1

    print(count)


# Optimized solution
# -*- coding: utf-8 -*-


def main():
    n = int(eval(input()))
    a = list(map(int, input().split()))
    ans = 0

    for ai in a:
        while ai % 2 == 0:
            ans += 1
            ai = ai // 2

    print(ans)


if __name__ == '__main__':
    main()
# Original solution
n = int(eval(input()))
nums  = [int(i) for i in input().split()]

count = 0
while any([i % 2 == 0 for i in nums]):
    count += 1
    div_index = max([(i, v) for i, v in enumerate(nums) if v % 2 == 0],
                    key=lambda x: x[1])[0]
    for i in range(len(nums)):
        if i == div_index:
            nums[i] //= 2
        else:
            nums[i] *= 3

print(count)


# Optimized solution
n = int(eval(input()))
nums  = [int(i) for i in input().split()]

tmp = [i for i in nums if i % 2 == 0]
count = 0
for i in tmp:

    while i % 2 == 0:
        count += 1
        i //= 2

print(count)
# Original solution
N=int(eval(input()))
A=list(map(int,input().split()))

def factorization(n):
    arr = []
    temp = n
    for i in range(2, int(-(-n**0.5//1))+1):
        if temp%i==0:
            cnt=0
            while temp%i==0:
                cnt+=1
                temp //= i
            arr.append([i, cnt])

    if temp!=1:
        arr.append([temp, 1])

    if arr==[]:
        arr.append([n, 1])

    return arr

cnt=0
for a in A:
    f=factorization(a)[0]
    if f[0]==2:
        cnt+=f[1]

print(cnt)

# Optimized solution
N=int(eval(input()))
A=list(map(int,input().split()))

def factorization(n):
    arr = []
    temp = n
    i=2
    if temp%i==0:
        cnt=0
        while temp%i==0:
            cnt+=1
            temp //= i
        arr.append([i, cnt])

    if temp!=1:
        arr.append([temp, 1])

    if arr==[]:
        arr.append([n, 1])

    return arr

cnt=0
for a in A:
    f=factorization(a)[0]
    if f[0]==2:
        cnt+=f[1]

print(cnt)
# Original solution
N = int(eval(input()))
a = list(map(int, input().split()))

ans = 0
for x in a:
  if x % 2 == 0:
    cnt = 0
    while x % 2 == 0:
      x //= 2
      cnt += 1
    ans += cnt
print(ans)

# Optimized solution
n = int(eval(input()))
A = list(map(int, input().split()))
cnt = 0
for a in A:
  if a%2==0:
    while a%2==0:
      a //= 2
      cnt += 1
print(cnt)
# Original solution
n, *a = list(map(int, open(0).read().split()))
ans = 0
for i in a:
    cnt = 0
    while i%2==0:
            i //= 2
            cnt += 1
    ans += cnt
print(ans)

# Optimized solution
n, *a = list(map(int, open(0).read().split()))
ans = 0
for i in a:
        while i%2==0:
                i //= 2
                ans += 1
print(ans)
# Original solution
N = int(eval(input()))
a = list(map(int, input().split()))

ans = 0
m = 1
for i in a:
    m *= i

while True:
    if m % 2 == 0:
        ans += 1
        m //= 2
    else:
        break

print(ans)


# Optimized solution
N = int(eval(input()))
a = list(map(int, input().split()))

ans = 0
for i in a:
    count = 0
    while True:
        if i % 2**(count+1) == 0:
            count += 1
        else:
            ans += count
            break

print(ans)
# Original solution
n = int(eval(input()))
li = list(map(int,input().split()))
li = [x for x in li if x%2 ==0]

li2 = []
for i in range(len(li)):
    num = 0
    
    while li[i]%2 == 0:
        li[i] = li[i]/2
        
        num += 1
    li2.append(num)
print((sum(li2)))

# Optimized solution
n = int(eval(input()))
L = list(map(int,input().split()))

ans = 0
for i in range(n):
    cnt = 0
    while True:
        if L[i]%2 == 0:
            cnt +=1
            L[i]//=2
        else:
            break
    ans +=cnt
print(ans)
# Original solution
#                         author:  kagemeka 
#                         created: 2019-11-08 12:38:16(JST)
## internal modules
import sys
# import collections
import math
# import string
# import bisect
# import re
# import itertools
# import statistics
# import functools
# import operator
## external modules
# import scipy.special   # if use comb function on AtCoder, 
# import scipy.misc      # select scipy.misc.comb (old version) 

def main():
    n, *a = (int(x) for x in sys.stdin.read().split())

    total_count = 0
    for i in range(n):
        current = a[i]
        count = 0
        for _ in range(math.floor(math.log(10 ** 9, 2)) + 1):
            if current % 2 == 0:
                current //= 2
                count += 1
            else:
                break
        total_count += count
    
    print(total_count)

if __name__ == "__main__":
    # execute only if run as a script
    main()


# Optimized solution
#                         author:  kagemeka 
#                         created: 2019-11-08 12:38:16(JST)
## internal modules
import sys
# import collections
import math
# import string
# import bisect
# import re
# import itertools
# import statistics
# import functools
# import operator
## external modules
# import scipy.special   # if use comb function on AtCoder, 
# import scipy.misc      # select scipy.misc.comb (old version) 

def main():
    n, *a = (int(x) for x in sys.stdin.read().split())

    total_count = 0
    atmost = math.floor(math.log(10 ** 9, 2))
    for i in range(n):
        current = a[i]
        count = 0
        for _ in range(atmost + 1):
            if current % 2 == 0:
                current //= 2
                count += 1
            else:
                break
        total_count += count
    
    print(total_count)

if __name__ == "__main__":
    # execute only if run as a script
    main()
# Original solution
#                         author:  kagemeka 
#                         created: 2019-11-08 12:38:16(JST)
## internal modules
import sys
# import collections
import math
# import string
# import bisect
# import re
# import itertools
# import statistics
# import functools
# import operator
## external modules
# import scipy.special   # if use comb function on AtCoder, 
# import scipy.misc      # select scipy.misc.comb (old version) 

def main():
    n, *a = (int(x) for x in sys.stdin.read().split())

    total_count = 0
    atmost = math.floor(math.log(10 ** 9, 2))
    for i in range(n):
        current = a[i]
        count = 0
        for _ in range(atmost + 1):
            if current % 2 == 0:
                current //= 2
                count += 1
            else:
                break
        total_count += count
    
    print(total_count)

if __name__ == "__main__":
    # execute only if run as a script
    main()


# Optimized solution
import sys

n, *a = list(map(int, sys.stdin.read().split()))

def main():
    cnt = 0
    for i in a:
        while not i % 2:
            i //= 2
            cnt += 1
    
    return cnt
    
if __name__ == '__main__':
    ans = main()
    print(ans)
# Original solution
n=int(eval(input()))
A=list(map(int,input().split()))
count=0
flag=False
while any(a%2==0 for a in A):
  count+=1
  flag=False
  for i in range(n):
    if A[i]%2==0 and flag==False:
      A[i]//=2
      flag=True
    else:
      A[i]*=3
print(count)

# Optimized solution
n=int(eval(input()))
A=list(map(int,input().split()))
ans=0
for i in A:
  while i%2==0:
    i//=2
    ans+=1
print(ans)
# Original solution
n = int(eval(input()))
A = list(map(int,input().split()))
count = 0
for a in A:
    while a%2 == 0:
        count += 1
        a /= 2
print(count)

# Optimized solution
n = int(eval(input()))
A = list(map(int,input().split()))
cnt = 0
for a in A:
    while a%2 == 0:
        cnt += 1
        a /= 2
print(cnt)
# Original solution
n = int(eval(input()))
A = list(map(int,input().split()))
cnt = 0
for a in A:
    while a%2 == 0:
        cnt += 1
        a /= 2
print(cnt)


# Optimized solution
N = int(eval(input()))
A = list(map(int,input().split()))
res = 0
for a in A:
    while a%2 == 0:
        a //= 2
        res += 1
print(res)
# Original solution
N = int(eval(input()))
A = list(map(int,input().split()))
res = 0
for a in A:
    while a%2 == 0:
        res += 1
        a //= 2
print(res)

# Optimized solution
n = int(eval(input()))
A = list(map(int,input().split()))
res = 0
for a in A:
    while a%2 == 0:
        res += 1
        a //= 2
print(res)
# Original solution
n = int(eval(input()))
a = [int(i) for i in input().split()]

b = 0
c = 0
cnt = 0
flag = False
while True:
    b = 0
    c = 0
    for i in range(n):
        if a[i] % 2 == 0 and c == 0:
            a[i] /= 2
            c += 1
        else:
            b += 1
    #print(a,b)
    if b != n:
        cnt += 1
    else:
        break

print(cnt)


# Optimized solution
n = int(eval(input()))
a = [int(i) for i in input().split()]

'''
b = 0
c = 0
cnt = 0
flag = False
while True:
    b = 0
    c = 0
    for i in range(n):
        if a[i] % 2 == 0 and c == 0:
            a[i] /= 2
            c += 1
        else:
            b += 1
    #print(a,b)
    if b != n:
        cnt += 1
    else:
        break
'''
b = [0] * n
for i in range(n):
    while True:
        if a[i] % 2 == 0:
            a[i] /= 2
            b[i] += 1
        else:
            break

print((sum(b)))
# Original solution
N = int(eval(input()))
A = list(map(int, input().split()))
ans = 0
while True:
    flag = False
    for i in range(N):
        if not flag and A[i] % 2 == 0:
            A[i] = A[i] // 2
            flag = True
        else:
            A[i] *= 3
    if flag:
        ans += 1
    else:
        break
print(ans)

# Optimized solution
N = int(eval(input()))
A = list(map(int, input().split()))
ans = 0
for i in range(N):
    while True:
        if A[i] % 2 == 0:
            ans += 1
            A[i] = A[i] // 2
        else:
            break
print(ans)
# Original solution
def main():
    N = int(eval(input()))
    A = [int(i) for i in input().split()]
    def count_div_by2(num):
        cnt = 0
        while num%2 == 0:
            cnt += 1
            num //= 2
        return cnt
    print((sum(count_div_by2(n) for n in A)))
if __name__ == '__main__':
    main()

# Optimized solution
def main():
    N = int(eval(input()))
    A = [int(i) for i in input().split()]
    ans = 0
    for i in range(N):
        while A[i] % 2 == 0:
            ans += 1
            A[i] //= 2
    print(ans)


if __name__ == '__main__':
    main()