import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Queue;

public class Main {

	/* --------------------------------------------------------------------
	   main
	 * -------------------------------------------------------------------- */
	public static void main(String args[]) throws Exception {

		// ----- input -----
		Input input = new Input();
		final Data l = input.readLine();
		Queue<Integer> q = input.getColQueue();
		input.close();

		// ----- main -----
		int ans = 0;
		while(!q.isEmpty()) {
			int d = q.poll();
			while(d%2==0) {
				ans++;
				d /= 2;
			}
		}

		System.out.println(ans);
	}

	/* --------------------------------------------------------------------
	 * inupt class
	 * -------------------------------------------------------------------- */
	static class Input {

		public BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
		public void close() throws Exception {
			input.close();
		}

		public Data readLine() throws Exception {
			return new Data(input.readLine().split(" "));
		}

		public Queue<Data> getDataQueue(int num) throws Exception {

			Queue<Data> q;
			q = new ArrayDeque<>();
//			data = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順


			for(int i=0; i < num; i++) {
				q.offer(readLine());
			}
			return q;
		}

		public Queue<Integer> getColQueue() throws Exception {

			Data d = readLine();
			Queue<Integer> q;
			q = new ArrayDeque<>();
//			queue = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順
			for(int i=0; i < d.col.length; i++) {
				q.offer(d.col[i]);
			}
			return q;
		}
	}
	/* --------------------------------------------------------------------
	 * data class
	 * -------------------------------------------------------------------- */
	static class Data{
		public int[] col;
		public Data(String[] values) {
			col = new int[values.length];
			for(int i=0; i < values.length; i++) {
				col[i] = Integer.parseInt(values[i]);
			}
		}
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.ArrayDeque; ArrayDeque java.util import java.util.Queue; Queue java.util public class Main {

	/* --------------------------------------------------------------------
	   main
	 * -------------------------------------------------------------------- */
	public static void main(String args[]) throws Exception {

		// ----- input -----
		Input input = new Input();
		final Data l = input.readLine();
		Queue<Integer> q = input.getColQueue();
		input.close();

		// ----- main -----
		int ans = 0;
		while(!q.isEmpty()) {
			int d = q.poll();
			while(d%2==0) {
				ans++;
				d /= 2;
			}
		}

		System.out.println(ans);
	}

	/* --------------------------------------------------------------------
	 * inupt class
	 * -------------------------------------------------------------------- */
	static class Input {

		public BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
		public void close() throws Exception {
			input.close();
		}

		public Data readLine() throws Exception {
			return new Data(input.readLine().split(" "));
		}

		public Queue<Data> getDataQueue(int num) throws Exception {

			Queue<Data> q;
			q = new ArrayDeque<>();
//			data = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順


			for(int i=0; i < num; i++) {
				q.offer(readLine());
			}
			return q;
		}

		public Queue<Integer> getColQueue() throws Exception {

			Data d = readLine();
			Queue<Integer> q;
			q = new ArrayDeque<>();
//			queue = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順
			for(int i=0; i < d.col.length; i++) {
				q.offer(d.col[i]);
			}
			return q;
		}
	}
	/* --------------------------------------------------------------------
	 * data class
	 * -------------------------------------------------------------------- */
	static class Data{
		public int[] col;
		public Data(String[] values) {
			col = new int[values.length];
			for(int i=0; i < values.length; i++) {
				col[i] = Integer.parseInt(values[i]);
			}
		}
	}
} Main /* --------------------------------------------------------------------
	   main
	 * -------------------------------------------------------------------- */
	public static void main(String args[]) throws Exception {

		// ----- input -----
		Input input = new Input();
		final Data l = input.readLine();
		Queue<Integer> q = input.getColQueue();
		input.close();

		// ----- main -----
		int ans = 0;
		while(!q.isEmpty()) {
			int d = q.poll();
			while(d%2==0) {
				ans++;
				d /= 2;
			}
		}

		System.out.println(ans);
	} main {

		// ----- input -----
		Input input = new Input();
		final Data l = input.readLine();
		Queue<Integer> q = input.getColQueue();
		input.close();

		// ----- main -----
		int ans = 0;
		while(!q.isEmpty()) {
			int d = q.poll();
			while(d%2==0) {
				ans++;
				d /= 2;
			}
		}

		System.out.println(ans);
	} Input input = new Input(); input new Input() final Data l = input.readLine(); l input.readLine() input.readLine input Queue<Integer> q = input.getColQueue(); q input.getColQueue() input.getColQueue input input.close() input.close input int ans = 0; ans 0 while(!q.isEmpty()) {
			int d = q.poll();
			while(d%2==0) {
				ans++;
				d /= 2;
			}
		} !q.isEmpty() q.isEmpty() q.isEmpty q {
			int d = q.poll();
			while(d%2==0) {
				ans++;
				d /= 2;
			}
		} int d = q.poll(); d q.poll() q.poll q while(d%2==0) {
				ans++;
				d /= 2;
			} d%2==0 d%2 d 2 0 {
				ans++;
				d /= 2;
			} ans++ ans d /= 2 d 2 System.out.println(ans) System.out.println System.out System System.out ans String args[] args static class Input {

		public BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
		public void close() throws Exception {
			input.close();
		}

		public Data readLine() throws Exception {
			return new Data(input.readLine().split(" "));
		}

		public Queue<Data> getDataQueue(int num) throws Exception {

			Queue<Data> q;
			q = new ArrayDeque<>();
//			data = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順


			for(int i=0; i < num; i++) {
				q.offer(readLine());
			}
			return q;
		}

		public Queue<Integer> getColQueue() throws Exception {

			Data d = readLine();
			Queue<Integer> q;
			q = new ArrayDeque<>();
//			queue = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順
			for(int i=0; i < d.col.length; i++) {
				q.offer(d.col[i]);
			}
			return q;
		}
	} Input public BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); input new BufferedReader(new InputStreamReader(System.in)) public void close() throws Exception {
			input.close();
		} close {
			input.close();
		} input.close() input.close input public Data readLine() throws Exception {
			return new Data(input.readLine().split(" "));
		} readLine {
			return new Data(input.readLine().split(" "));
		} return new Data(input.readLine().split(" ")); new Data(input.readLine().split(" ")) public Queue<Data> getDataQueue(int num) throws Exception {

			Queue<Data> q;
			q = new ArrayDeque<>();
//			data = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順


			for(int i=0; i < num; i++) {
				q.offer(readLine());
			}
			return q;
		} getDataQueue {

			Queue<Data> q;
			q = new ArrayDeque<>();
//			data = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順


			for(int i=0; i < num; i++) {
				q.offer(readLine());
			}
			return q;
		} Queue<Data> q; q q = new ArrayDeque<>() q new ArrayDeque<>() for(int i=0; i < num; i++) {
				q.offer(readLine());
			} int i=0; int i=0; i 0 i < num i num i++ i++ i {
				q.offer(readLine());
			} {
				q.offer(readLine());
			} q.offer(readLine()) q.offer q readLine() readLine return q; q int num num public Queue<Integer> getColQueue() throws Exception {

			Data d = readLine();
			Queue<Integer> q;
			q = new ArrayDeque<>();
//			queue = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順
			for(int i=0; i < d.col.length; i++) {
				q.offer(d.col[i]);
			}
			return q;
		} getColQueue {

			Data d = readLine();
			Queue<Integer> q;
			q = new ArrayDeque<>();
//			queue = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順
			for(int i=0; i < d.col.length; i++) {
				q.offer(d.col[i]);
			}
			return q;
		} Data d = readLine(); d readLine() readLine Queue<Integer> q; q q = new ArrayDeque<>() q new ArrayDeque<>() for(int i=0; i < d.col.length; i++) {
				q.offer(d.col[i]);
			} int i=0; int i=0; i 0 i < d.col.length i d.col.length d.col d d.col d.col.length i++ i++ i {
				q.offer(d.col[i]);
			} {
				q.offer(d.col[i]);
			} q.offer(d.col[i]) q.offer q d.col[i] d.col d d.col i return q; q static class Data{
		public int[] col;
		public Data(String[] values) {
			col = new int[values.length];
			for(int i=0; i < values.length; i++) {
				col[i] = Integer.parseInt(values[i]);
			}
		}
	} Data public int[] col; col public Data(String[] values) {
			col = new int[values.length];
			for(int i=0; i < values.length; i++) {
				col[i] = Integer.parseInt(values[i]);
			}
		} Data {
			col = new int[values.length];
			for(int i=0; i < values.length; i++) {
				col[i] = Integer.parseInt(values[i]);
			}
		} col = new int[values.length] col new int[values.length] values.length values values.length for(int i=0; i < values.length; i++) {
				col[i] = Integer.parseInt(values[i]);
			} int i=0; int i=0; i 0 i < values.length i values.length values values.length i++ i++ i {
				col[i] = Integer.parseInt(values[i]);
			} {
				col[i] = Integer.parseInt(values[i]);
			} col[i] = Integer.parseInt(values[i]) col[i] col i Integer.parseInt(values[i]) Integer.parseInt Integer values[i] values i String[] values values public class Main {

	/* --------------------------------------------------------------------
	   main
	 * -------------------------------------------------------------------- */
	public static void main(String args[]) throws Exception {

		// ----- input -----
		Input input = new Input();
		final Data l = input.readLine();
		Queue<Integer> q = input.getColQueue();
		input.close();

		// ----- main -----
		int ans = 0;
		while(!q.isEmpty()) {
			int d = q.poll();
			while(d%2==0) {
				ans++;
				d /= 2;
			}
		}

		System.out.println(ans);
	}

	/* --------------------------------------------------------------------
	 * inupt class
	 * -------------------------------------------------------------------- */
	static class Input {

		public BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
		public void close() throws Exception {
			input.close();
		}

		public Data readLine() throws Exception {
			return new Data(input.readLine().split(" "));
		}

		public Queue<Data> getDataQueue(int num) throws Exception {

			Queue<Data> q;
			q = new ArrayDeque<>();
//			data = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順


			for(int i=0; i < num; i++) {
				q.offer(readLine());
			}
			return q;
		}

		public Queue<Integer> getColQueue() throws Exception {

			Data d = readLine();
			Queue<Integer> q;
			q = new ArrayDeque<>();
//			queue = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順
			for(int i=0; i < d.col.length; i++) {
				q.offer(d.col[i]);
			}
			return q;
		}
	}
	/* --------------------------------------------------------------------
	 * data class
	 * -------------------------------------------------------------------- */
	static class Data{
		public int[] col;
		public Data(String[] values) {
			col = new int[values.length];
			for(int i=0; i < values.length; i++) {
				col[i] = Integer.parseInt(values[i]);
			}
		}
	}
} public class Main {

	/* --------------------------------------------------------------------
	   main
	 * -------------------------------------------------------------------- */
	public static void main(String args[]) throws Exception {

		// ----- input -----
		Input input = new Input();
		final Data l = input.readLine();
		Queue<Integer> q = input.getColQueue();
		input.close();

		// ----- main -----
		int ans = 0;
		while(!q.isEmpty()) {
			int d = q.poll();
			while(d%2==0) {
				ans++;
				d /= 2;
			}
		}

		System.out.println(ans);
	}

	/* --------------------------------------------------------------------
	 * inupt class
	 * -------------------------------------------------------------------- */
	static class Input {

		public BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
		public void close() throws Exception {
			input.close();
		}

		public Data readLine() throws Exception {
			return new Data(input.readLine().split(" "));
		}

		public Queue<Data> getDataQueue(int num) throws Exception {

			Queue<Data> q;
			q = new ArrayDeque<>();
//			data = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順


			for(int i=0; i < num; i++) {
				q.offer(readLine());
			}
			return q;
		}

		public Queue<Integer> getColQueue() throws Exception {

			Data d = readLine();
			Queue<Integer> q;
			q = new ArrayDeque<>();
//			queue = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順
			for(int i=0; i < d.col.length; i++) {
				q.offer(d.col[i]);
			}
			return q;
		}
	}
	/* --------------------------------------------------------------------
	 * data class
	 * -------------------------------------------------------------------- */
	static class Data{
		public int[] col;
		public Data(String[] values) {
			col = new int[values.length];
			for(int i=0; i < values.length; i++) {
				col[i] = Integer.parseInt(values[i]);
			}
		}
	}
} Main
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Queue;

public class Main {

	/* --------------------------------------------------------------------
	   main
	 * -------------------------------------------------------------------- */
	public static void main(String args[]) throws Exception {

		// ----- input -----
		Input input = new Input();
		final Data l = input.readLine();
		Queue<Integer> q = input.getColQueue();
		input.close();

		// ----- main -----
		int ans = 0;
		while(!q.isEmpty()) {
			int d = q.poll();
			while(d%2==0) {
				ans++;
				d /= 2;
			}
		}

		System.out.println(ans);
	}

	/* --------------------------------------------------------------------
	 * inupt class
	 * -------------------------------------------------------------------- */
	static class Input {

		public BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
		public void close() throws Exception {
			input.close();
		}

		public Data readLine() throws Exception {
			return new Data(input.readLine().split(" "));
		}

		public Queue<Data> getDataQueue(int num) throws Exception {

			Queue<Data> q;
			q = new ArrayDeque<>();
//			data = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順


			for(int i=0; i < num; i++) {
				q.offer(readLine());
			}
			return q;
		}

		public Queue<Integer> getColQueue() throws Exception {

			Data d = readLine();
			Queue<Integer> q;
			q = new ArrayDeque<>();
//			queue = new PriorityQueue<>( (a,b) -> a.col[0] - b.col[0]);	// 降順
			for(int i=0; i < d.col.length; i++) {
				q.offer(d.col[i]);
			}
			return q;
		}
	}
	/* --------------------------------------------------------------------
	 * data class
	 * -------------------------------------------------------------------- */
	static class Data{
		public int[] col;
		public Data(String[] values) {
			col = new int[values.length];
			for(int i=0; i < values.length; i++) {
				col[i] = Integer.parseInt(values[i]);
			}
		}
	}
}