#include #define MAX 1000000 int n, x, dp[MAX + 1]; int main() { scanf("%d", &n); for(int i = 0; i < n; i++) { scanf("%d", &x); dp[x] = 1; } int max = 1; for(int i = 1; i <= MAX; i++) { if(dp[i]) { for(int j = i * 2; j <= MAX; j += i) { if(dp[j]) { if(dp[j] < dp[i] + 1) { dp[j] = dp[i] + 1; } if(max < dp[j]) { max = dp[j]; } } } } } printf("%d\n", max); return 0; }