using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static long LongestSequence(long[] all) { var total = 0L; foreach (var a in all) { total += Pieces(a); } return total; } public static Dictionary History { get; set; } = new Dictionary {{1, 1}}; static long Pieces(long n) { if (History.ContainsKey(n)) return History[n]; var options = new List {n + 1}; var x = n / 2; for (var i = 2; i <= x; i++) { if (n % i == 0) { options.Add(i * Pieces(n / i) + 1); } } var result = options.Max(); return History[n] = result; } static void Main(String[] args) { var n = Convert.ToInt32(Console.ReadLine()); var aTemp = Console.ReadLine().Split(' '); var a = Array.ConvertAll(aTemp, Int64.Parse); var result = LongestSequence(a); Console.WriteLine(result); } }