最大团

题目描述

Y 同学获得了一个由 NN 个互不相同的正整数构成的集合 A={A1,A2,,AN}A = \{A_1, A_2, \dots, A_N\}

Y 同学定义该集合的“整除图”如下:该无向图的顶点为集合 AA 中的所有元素;对于图中的任意两个不同的顶点 AiA_iAjA_j(其中 1i<jN1 \le i < j \le N),当且仅当 AiA_i 能被 AjA_j 整除,或者 AjA_j 能被 AiA_i 整除时,这两个顶点之间存在一条无向边。

在一个无向图中,“团”是指图的顶点集合的一个子集,满足该子集中的任意两个顶点之间都由一条边相连。特别地,空集与只含有一个顶点的集合也被视为团。

请你编写程序,帮助 Y 同学求出由集合 AA 构成的整除图中,最大团所包含的顶点数量(即最大团的大小)。

输入格式

第一行包含一个正整数 NN,表示集合 AA 中元素的个数。

第二行包含 NN 个互不相同的正整数 A1,A2,,ANA_1, A_2, \dots, A_N,相邻两个整数之间由一个空格隔开,表示集合 AA 中的元素。保证这 NN 个数已经按严格升序排列。

输出格式

输出一行一个整数,表示整除图中最大团的大小。

样例

样例输入 #1

8
3 4 6 8 10 18 21 24

样例输出 #1

3

数据范围与约定

对于 100%100\% 的数据,保证 1N1061 \le N \le 10^61Ai1061 \le A_i \le 10^6,且序列 AA 严格单调递增。

子任务编号 分值 NN \le AiA_i \le 特殊性质
1 20 10310^3
2 30 10510^5
3 50 10610^6

相关

在下列比赛中:

「果壳杯」 ROUND 43 (Div. 3)