#include using namespace std; long long int max(long long int a,long long int b,long long int c) { long long int l=a>b?a:b; l=l>c?l:c; return l; } long long int longestSequence(vector a) { int n=a.size(); long long int l=a[0],s=0,q; for(int i=0;il) l=a[i]; } bool p[l+1]={false};long long int c[l+1]={0}; c[1]=1; for(int i=2;i<=sqrt(l);i++) { if(!p[i]) { for(int j=2*i;j<=l;j+=i) { p[j]=true; } } } for(int i=2;i<=l;i++) { if(!p[i]) c[i]=i+1; else { for(int j=2;j<=sqrt(i);j++) { if((i%j)==0) { q=i/j; c[i]=max(1+j*c[q],1+q*c[j],c[i]); } } } } for(int i=0;i> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } long long int result = longestSequence(a); cout << result << endl; return 0; }