#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000 * 1000 + 5;
int n;
int a[maxn];
int dp[maxn];
bool num[maxn];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    num[a[i]] = true;
  }
  for (int i = 0; i < n; i++) {
    dp[a[i]]++;
    for (int j = 1; j * a[i] < maxn; j++) {
      if (num[j * a[i]] == true) dp[j * a[i]] = max(dp[a[i]], dp[j * a[i]]);
    }
  }
  int mx = 0;
  for (int i = 0; i < maxn; i++) {
    if (dp[a[i]] > mx) mx = dp[a[i]];
  }
  printf("%d", mx);
  return 0;
}
