#include using namespace std; #define rep(i,N) repf(i,0,N) #define reps(i,N) repfs(i,0,N) #define repf(i,a,b) for(int i=a;i=0;i--) #define reprs(i,N) for(int i=N;i>0;i--) #define d(a) if(isDebugMode) cout<<#a<<"="< P; const int INF = 100000000; const int MOD = 1000000007; const int dx[4] = { 0, 1, 0,-1}; const int dy[4] = { 1, 0,-1, 0}; bool isDebugMode=1; //--------------------------------------// int n; int x[100000]; #define MAX_X 1000000 int dp[1000001]; void solve(){ sort(x,x+n); rep(i, n){ dp[x[i]]=1; } rep(i,n){ if(dp[x[i]] <= 0) continue; for(int j=x[i]*2;j<=MAX_X;j+=x[i]){ if(dp[j]>=1) chmax(dp[j],dp[x[i]]+1); } } int m=0; reps(j,1000000){ chmax(m,dp[j]); } cout<>n; rep(i,n) { cin>>x[i]; } solve(); return 0; }