#P1169. 点集

点集

题目描述

现在给你nn个点,每个点上有一个数值aia_i

两个点(i,j)(i, j)之间可以连一条无向边,当且仅当aia_iaja_j的整数倍,或者aja_jaia_i的整数倍。

你的任务是从nn个点选出一个点数量最多的点集SS,使得点集SS中的任意两个点之间都具有一条无向边。求出这个点集大小。

输入格式

第一行一个整数nn,表示给定点的数量nn

接下来nn个正整数a1ana_1 \sim a_n,表示第一个点到第nn个点上的数值。

输出格式

一行一个正整数,表示最多能选几个点到点集中。

6
2 1 7 9 6 2
4

样例解释

可以选择[2, 1, 6, 2],不难发现这四个数字中任意两个数字总能描述成其中一个是另一个的倍数。此时选出的点集大小为4个点。

数据规模与约定

每组数据点10分,共10组数据。

测试点编号 n,ain, a_i数据范围
#1 ~ #2 1n10,1ai10 1\le n \le 10, 1 \le a_i \le 10
#3 ~ #4 1n103,1ai10 1\le n \le 10^3, 1 \le a_i \le 10
#5 ~ #10 1n106,1ai106 1\le n \le 10^6, 1 \le a_i \le 10^6

大样例

大样例下载