using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static LinkedList AllDevs(long a) { LinkedList preDevs = new LinkedList(); LinkedList devs = new LinkedList(); for (long i = 1; i * i <= a; ++i) if (a % i == 0) preDevs.AddFirst(i); foreach (var d in preDevs) { if (a != d * d) devs.AddFirst(a / d); devs.AddLast(d); } return devs; } static long GetMax(LinkedListNode devs, long num) { long max = 0; long div = devs.Value; if (devs.Next != null) { devs = devs.Next; while (devs != null && div % devs.Value != 0) devs = devs.Next; max = GetMax(devs, num); } return div + max; } static long longestSequence(long[] a) { long res = 0; foreach (var v in a) res += GetMax(AllDevs(v).First, v); return res; } static void Main(String[] args) { Console.ReadLine(); string[] a_temp = Console.ReadLine().Split(' '); long[] a = Array.ConvertAll(a_temp, Int64.Parse); long result = longestSequence(a); Console.WriteLine(result); Console.ReadKey(); } }