D 与太阳
题号:NC230886
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

天空中有 n 个太阳,第 i 个太阳的高度为 a_i,各个太阳的高度互不相同。D 携带了所有型号大于 1 的箭。D 可以任意选定一个大于 1 的正整数 x,代表选择了一根型号为 x 的箭,然后他会再选择一个角度 k。最终,D 会射下所有高度模 xk 的太阳。

D 的偶像是桃花,为了射日如桃花,D 需要一次性射下尽可能多的太阳。现在请回答,他最多可以一次性射下多少个太阳。

输入描述:

第一行一个正整数 n

第二行 n 个正整数,第 i 个数 a_i 表示第 i 个太阳的高度。

数据保证 a_i 两两不同。

输出描述:

一行一个自然数,代表 D 最多能射下多少个太阳。
示例1

输入

复制
4
3 6 9 12

输出

复制
4

说明

在样例 1 中,D 选择 x=3k=0,然后可以射下所有太阳,因为 3\equiv6\equiv9\equiv12 \equiv0\mod 3
示例2

输入

复制
5
1 8 11 16 31

输出

复制
4

说明

在样例 2 中,D 选择 x=5k=1,然后射下除 8 以外的四个太阳,因为 1\equiv11\equiv16\equiv31\equiv1\mod 5

备注:

请注意本题读入量较大。