using System;
using System.Linq;
using System.Collections.Generic;

class Solution
{
	static List<int> primes = new List<int>();
	static long Solve(Dictionary<long, int> factors, List<long> keys, long remaining) {
		long result = 1;
		long maxFactor = 1;
		foreach (KeyValuePair<long, int> pair in factors) {
			if (pair.Value > 0 && pair.Key * pair.Key < remaining)
				maxFactor = pair.Key;
		}
		foreach (long key in keys) {
			if (key < maxFactor)
				continue;
			if (factors[key] > 0) {
				factors [key]--;
				result = Math.Max (result, 1 + key * Solve (factors, keys, remaining / key));
				factors [key]++;
			}
		}
		return result;
	}

	static void PrimeSieve (int n)
	{
		bool[] prime = new bool[n + 1];
		for (int i = 2; i <= n; i++) {
			prime [i] = true;
		}
		for (int i = 2; i <= n / 2; i++) {
			if (!prime [i])
				continue;
			for (int k = 2 * i; k <= n; k += i) {
				prime [k] = false;
			}
			primes.Add (i);
		}
	}

	static Dictionary<long, int> PrimeFactor (long n)
	{
		Dictionary<long, int> result = new Dictionary<long, int> ();
		foreach (int i in primes) {
			if (n % i == 0) {
				result.Add (i, 0);
				while (n % i == 0) {
					n /= i;
					result [i]++;
				}
			}
		}
		if (n > 1)
			result.Add (n, 1);
		return result;
	}

	public static void Main (string[] args)
	{
		PrimeSieve ((int)1e6);
		Console.ReadLine ();
		long[] nums = Console.ReadLine ().Split (' ').Select (long.Parse).ToArray ();
		long sum = 0;
		foreach (long l in nums) {
			Dictionary<long, int> factors = PrimeFactor (l);
			sum += Solve (factors, factors.Keys.ToList (), l);
		}
		Console.WriteLine (sum);
	}
}