#include <bits/stdc++.h> using namespace std; #define mp(a,b) make_pair(a,b) #define ff first #define setp setprecision(12)<<fixed #define ss second #define fori(v) for(int i=0; i<v; i++) #define forj(v) for(int j=0; j<v; j++) #define fork(v) for(int k=0; k<v; k++) #define forl(v) for(int l=0; l<v; l++) #define fort(v) for(int t=0; t<v; t++) #define forz(v) for(int z=0; z<v; z++) #define lli long long int #define double long double #define MAX 100010 #define ch 560 #define sz 30 int inf = pow(10,9); lli modulo = inf+7; double eps = 1e-10; ifstream in; ofstream out; int dx[6] = {-2,-2,0,2,2,0}; int dy[6] = {-1,1,2,1,-1,-2}; int main(){ int n; cin>>n; lli sum = 0; lli all[MAX]; map<lli,lli> save; fori(n){ lli ed; cin>>ed; lli kok = sqrt(ed); int count = 0; for(lli j=1; j<=kok; j++) if(!(ed%j)){ all[count] = j, ++count; if(j!=ed/j) all[count] = ed/j , ++count; } sort(all,all+count); lli DP[count]; DP[0] = 1; for(int i=1; i<count; i++){ DP[i] = 1; lli see = save[all[i]]; if(see!=0){ DP[i] = see; continue; } forj(i) if(!(all[i]%all[j])){ lli vl = all[i]/all[j] * DP[j] + 1 ; if(vl > DP[i]) DP[i] = vl; } save[all[i]] = DP[i]; } sum+=DP[count-1]; } cout<<sum; }