#include <bits/stdc++.h>
using namespace std;
int ts[100100];
int main() {
  int n, x;
  while (scanf("%d", &n) == 1) {
    memset(ts, 0, sizeof(ts));
    for (int i = 0; i < (n); i++) {
      scanf("%d", &x);
      int prv = ts[x];
      for (int j = 2; j * j <= x; j++) {
        if (x % j == 0) {
          prv = max(prv, ts[j]);
          prv = max(prv, ts[x / j]);
        }
      }
      for (int j = 2; j * j <= x; j++) {
        if (x % j == 0) {
          ts[j] = prv + 1;
          ts[x / j] = prv + 1;
        }
      }
      ts[x] = prv + 1;
    }
    int res = 0;
    for (int i = 0; i < (100101); i++) res = max(res, ts[i]);
    printf("%d\n", res);
  }
  return 0;
}
