题目
长度为$N$的数列{a_i}的GCD Table定义为一个$N\times N$的表,表中元素$b_{ij}=gcd(a_i,a_j)$。
现给你一个GCD Table中的所有数,要求输出原数列中的所有元素。
数据范围
$N \leq 500$
做法
注意到:$gcd(a,b)≤min(a,b)$ 。
所以,最大的$gcd$值一定在原数列中出现,将此数从所给的数中去掉。剩下的数中,最大的数也一定在原数列中。将此数从所给的数中去掉,再将此数与之前得出的原数列中的数的$gcd$从所给的数中去掉。不断重复此过程,直到所给的数都被去掉。
代码
|
|