#include using namespace std; map m; long solve(long x) { if(x==1) { return 1; } if(x==2) { return 3; } long i; if(m[x]>0) { return m[x]; } m[x]=1+x; for(i=2;i<=sqrt(x);i++) { if(x%i==0) { m[x]=max(m[x],max(1+(x/i)*solve(i),1+(i)*solve(x/i))); } } return m[x]; } long longestSequence(vector a) { long i,j,ans=0,temp; for(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; }