宝物GCD
题号:NC218381
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

朝阳穿越去了异世界,并且最终打败了魔王拯救了公主,现在国王想要将公主许配给朝阳,但是国王只见识到了朝阳的武力并没有见识过智力,国王为了选个好女婿对朝阳展开了一次智力考验。国王会给出n件宝物,每件宝物都有对应的价值a_i,现在国王说,你要从我这里选取尽可能多的宝物,但是你又要保证你选择的任意两件宝物可以通过我的检查。国王的检查,就是在朝阳选择的一些宝物中任选两件。
需要保证,当然国王的检查可以检查很多很多次,直到它把全部挑选的可能都判断过了,觉得朝阳选择的宝物全部符合他的要求并且朝阳挑选的宝物个数已经达到了最多无法增加了,国王就会认可朝阳并把公主许配给他。
朝阳很快的解决了这个问题,并且回答了一个正确的答案给国王,他挑选的宝物数量是多少。

输入描述:

第一行输入一个整数代表国王给出的宝物数量。
第二行输入n个使用空格分隔的整数,代表每个宝物的价值

输出描述:

输出一个整数,代表朝阳回答的可挑选的最多宝物数量。
示例1

输入

复制
3
3 3 9

输出

复制
3

说明

朝阳可以选择全部的宝物,并且保证\gcd(3,3)=3, \gcd(3,9)=3
示例2

输入

复制
4
2 4 8 12

输出

复制
3

说明

朝阳可以选择2,4,8来满足国王的要求,也可以选择2,4,12来满足国王的要求,但是无法挑选4件宝物\gcd(8,12)=4,并不会等于8。