#!/bin/python3 import sys bigbinaries = [] i = 0 a = 0 while a < 10**12: a = 2**i i += 1 bigbinaries.append(a) def prime_value(n): if n == 2 or n == 3: return True if n < 2 or n%2 == 0: return False if n < 9: return True if n%3 == 0: return False r = int(n**0.5) f = 5 while f <= r: if n%f == 0: return False if n%(f+2) == 0: return False f +=6 return True def find_binary_divisors(value): index = 1 end = False if value <= 2: return 1 while end is False: index += 1 eval = value / index if eval in bigbinaries: end = True return index def longestSequence(a): # Return the length of the longest possible sequence of moves. sum = 0 for chocolate in a: if chocolate == 1: sum += 1 else: if prime_value(chocolate): sum += 1 + chocolate else: sum += chocolate index = find_binary_divisors(chocolate) stick_number = [1] stick_number.append(index) while index > 1: chocolate = chocolate // index index = find_binary_divisors(chocolate) stick_number.append(index) val = 1 for i in stick_number[:-1]: val = val * i sum += val return(sum) if __name__ == "__main__": n = int(input().strip()) a = list(map(int, input().strip().split(' '))) result = longestSequence(a) print(result)