#include using namespace std; long getLowestDiv(long n) { int isprime=1; long i; for(i=2;i*i<=n;i++) { if(n%i==0) { isprime=0; break; } } if(isprime) return n; else return i; } long getMaxDivisions(long a) { long div=getLowestDiv(a); long numdiv=a,prev=1; long count=0; if (a==1) return a; if (div==a) return (a+1); while(numdiv!=1) { numdiv=numdiv/getLowestDiv(numdiv); count+=(1*prev); prev=numdiv; } count+=a; return count; } long longestSequence(vector a) { // Return the length of the longest possible sequence of moves. long sum=0; for(int i=0;i> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } long result = longestSequence(a); cout << result << endl; return 0; }