#include #include #define MAX(a,b) ((a)>(b)?(a):(b)) void run(void){ int n; scanf("%d",&n); const int m=1000000; int *e=(int *)calloc(m+1,sizeof(int)); int i; for(i=0;i=1;i--){ if(e[i]>0){ int j; for(j=2*i;j<=m;j+=i){ e[i]=MAX(e[i],e[j]+1); } } } int ans=0; for(i=1;i<=m;i++){ ans=MAX(ans,e[i]); } printf("%d\n",ans); free(e); return; } int main(void){ run(); return 0; }