using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; internal class Solution { private static List Factor(long n) { var ret = new List(); var limit = Math.Ceiling(Math.Sqrt(n)) + 1; long div = 2; while (n > 1 && div <= limit) { if (n % div == 0) { ret.Add(div); n /= div; } else { div += 1; } } if (n > 1) { ret.Add(n); } return ret; } private static long SolveOne(long n) { var factor = Factor(n); factor.Add(1); factor.Reverse(); long acc = 0; for (var i = 0; i < factor.Count; i++) { acc += factor.Take(factor.Count - i).Aggregate((l, l1) => l * l1); } return acc; } private static long LongestSequence(long[] a) { var max = a.Max(); return a.Select(SolveOne).Sum(); } public static void Main(String[] args) { var n = Convert.ToInt32(Console.ReadLine()); var a_temp = Console.ReadLine().Split(' '); var a = Array.ConvertAll(a_temp, long.Parse); var result = LongestSequence(a); Console.WriteLine(result); Console.ReadLine(); } }