process.stdin.resume(); process.stdin.setEncoding('ascii'); var input_stdin = ""; var input_stdin_array = ""; var input_currentline = 0; process.stdin.on('data', function (data) { input_stdin += data; }); process.stdin.on('end', function () { input_stdin_array = input_stdin.split("\n"); main(); }); function readLine() { return input_stdin_array[input_currentline++]; } /////////////// ignore above this line //////////////////// function longestSequence(a) { // Return the length of the longest possible sequence of moves. var total = 0; a.forEach((num) => ( total += calc(num) )); return total; } function calc(num) { if (num == 1) { return 1; } var factors = getFactors(num); var total = 0; var previous = 1; for (var i = 0; i < factors.length; i++) { if (factors[i] % previous == 0) { total += num / factors[i]; previous = factors[i]; } } return total; } function getFactors(n) { var n_factors = []; for (var i = 1; i <= Math.floor(Math.sqrt(n)); i++) if (n % i === 0) { n_factors.push(i); if (n / i !== i) { n_factors.push(n / i); } } n_factors.sort((a, b) => (a - b)); return n_factors; } function main() { var n = parseInt(readLine()); a = readLine().split(' '); a = a.map(Number); var result = longestSequence(a); process.stdout.write("" + result + "\n"); }