local mmi, mma = math.min, math.max local mfl = math.floor local n = io.read("*n") local lim = 100000 local t = {} for i = 1, lim do t[i] = 0 end for i = 1, n do local a = io.read("*n") local val = 0 for j = 1, 320 do if a < j * j then break end if a % j == 0 then val = mma(val, t[j]) val = mma(val, t[mfl(a / j)]) end end t[a] = mma(t[a], val + 1) end local ret = 0 for i = 1, lim do ret = mma(ret, t[i]) end print(ret)