#include <bits/stdc++.h>
using namespace std;
#define int long long
#define dd double
#define ld long double
#define ull unsigned long long
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define el "\n"
#define Arwa ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define fix(x) cout << fixed << setprecision(x)
#define all(v) v.begin(),v.end()
#define dpp(v,val) memset(v,val,sizeof(v))
#define mod 1e9+7
#define oo 1e9
const int N = 1e5 + 5;
map<int,int>pf(int n)
{
map<int,int>mp;
for(int i=2;i<=n*n;i++)
{
if((n%i==0))
{
while(n%i==0) n/=i;
mp[i]=1;
}
}
if(n>1) mp[n]=1;
return mp;
}
void HereWeGoAgain()
{
int n;
cin>>n;
vector<int>v(n);
for(int i=0;i<n;i++)
cin>>v[i];
int dp[N]={};
if(n==1) {cout<<1<<el; return ;}
for(auto it:v)
{
if(it!=1)
{
auto pf1=pf(it);
int mx=0;
for(auto it1:pf1)
{ dp[it1.first]++;mx=max(dp[it1.first],mx); }
for(auto it1:pf1)
dp[it1.first]=mx;
}
}
int ans=0;
for(int i=1;i<=n;i++) ans=max(dp[i],ans); cout<<ans<<el;
}
int32_t main()
{
Arwa
int t=1;
//cin>>t;
for(int i=1;i<=t;i++)
{
HereWeGoAgain();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGRkIGRvdWJsZQojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIHllcyBjb3V0IDw8ICJZRVNcbiIKI2RlZmluZSBubyBjb3V0IDw8ICJOT1xuIgojZGVmaW5lIGVsICJcbiIKI2RlZmluZSBBcndhIGlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKI2RlZmluZSBmaXgoeCkgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oeCkKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLHYuZW5kKCkKI2RlZmluZSBkcHAodix2YWwpIG1lbXNldCh2LHZhbCxzaXplb2YodikpCiNkZWZpbmUgbW9kIDFlOSs3CiNkZWZpbmUgb28gMWU5CmNvbnN0IGludCBOID0gMWU1ICsgNTsKbWFwPGludCxpbnQ+cGYoaW50IG4pCnsKICBtYXA8aW50LGludD5tcDsKICBmb3IoaW50IGk9MjtpPD1uKm47aSsrKQogIHsKICAgICBpZigobiVpPT0wKSkKICAgICB7CiAgICAgd2hpbGUobiVpPT0wKSBuLz1pOwogICAgIG1wW2ldPTE7CiAgICAgfQogIH0KICBpZihuPjEpIG1wW25dPTE7CiAgcmV0dXJuIG1wOwp9CnZvaWQgSGVyZVdlR29BZ2FpbigpCnsKICBpbnQgbjsKICBjaW4+Pm47CiAgdmVjdG9yPGludD52KG4pOwogIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgY2luPj52W2ldOwogIGludCBkcFtOXT17fTsKICBpZihuPT0xKSB7Y291dDw8MTw8ZWw7IHJldHVybiA7fQogIGZvcihhdXRvIGl0OnYpCiAgewogICAgaWYoaXQhPTEpCiAgICB7CiAgICBhdXRvIHBmMT1wZihpdCk7CiAgICBpbnQgbXg9MDsKICAgIGZvcihhdXRvIGl0MTpwZjEpCiAgICB7IGRwW2l0MS5maXJzdF0rKztteD1tYXgoZHBbaXQxLmZpcnN0XSxteCk7IH0KICAgIGZvcihhdXRvIGl0MTpwZjEpCiAgICBkcFtpdDEuZmlyc3RdPW14OwogICAgfQogIH0KICBpbnQgYW5zPTA7CiAgZm9yKGludCBpPTE7aTw9bjtpKyspIGFucz1tYXgoZHBbaV0sYW5zKTsgY291dDw8YW5zPDxlbDsKfQppbnQzMl90IG1haW4oKSAKewogICAgQXJ3YQogICAgaW50IHQ9MTsKICAgIC8vY2luPj50OwogICAgZm9yKGludCBpPTE7aTw9dDtpKyspCiAgICB7CiAgICBIZXJlV2VHb0FnYWluKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=