#include #include #include #include #include #include #include long int MAX(int a,int b) { return (a>b)?a:b; } long int longestSequence(long int a) { long int max=0; long int n=a; for (long int i = a; i>1; i--) { n=a; int move=0; if (n%i==0) { n=n/i; move=i; for (long int j = a; n>1; j--) { if (n%j==0) { n=n/j; move=move+move*j; } } long int swap=move; move=max; max=swap; max=MAX(move,max); } } // Return the length of the longest possible sequence of moves. return max; } int main() { int n; scanf("%d", &n); long int a[n]; for (int i = 0; i < n; i++) { scanf("%ld",&a[i]); } long int result = 0; for (int i = 0; i < n; ++i) { result = 1+result + longestSequence(a[i]); } printf("%ld\n", result); return 0; }