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 factorize(a) { var factors = [1]; while (a % 2 == 0) { factors.push(2); a /= 2; } for (var p = 3; p <= Math.sqrt(a); p += 2) { if (a % p == 0) { while( a % p == 0) { factors.push(p); a /= p; } } } if (a !== 1) { factors.push(a); } return factors.sort((a, b) => b-a); } function calculateMovesFromSortedFactors(factors) { if (factors.length === 0) { return 0; } var biggest_factor = factors.shift(); if (biggest_factor === 1) { return 1; } return 1 + biggest_factor * (calculateMovesFromSortedFactors(factors.slice())); } function longestSequence(a) { // Return the length of the longest possible sequence of moves. const moves = a.map((bar) => { if (bar === 0) { return 0; } var factors = factorize(bar); return calculateMovesFromSortedFactors(factors); }); var sum = 0; moves.forEach((numMoves) => sum += numMoves); return sum; } function main() { var n = parseInt(readLine()); a = readLine().split(' '); a = a.map(Number); var result = longestSequence(a); process.stdout.write("" + result + "\n"); }