#include #include #include #include #include #include #include long int calcSeq(long int a) { if (a == 1) return (1); int i; i = 2; while (a%i && i*i < a) i++; if (a%i == 0) return (a + calcSeq(a/i)); else return (a + 1); } long int longestSequence(int a_size, long int* a) { // Return the length of the longest possible sequence of moves. int i; i = 0; long int sum; sum = 0; while (i < a_size) sum +=calcSeq(a[i++]); return (sum); } int main() { int n; scanf("%i", &n); long int *a = malloc(sizeof(long int) * n); for (int a_i = 0; a_i < n; a_i++) { scanf("%li",&a[a_i]); } long int result = longestSequence(n, a); printf("%ld\n", result); return 0; }