相等数组
题目描述
Eve 有一个长度为 n 的数组 a 以及一个常数 m≥2,他知道对于任意的 1≤i≤n,都有 2≤ai≤m。x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
Eve 觉得数组里一定要有全部相等的元素,所以他想通过以下操作把数组里的元素变得全部相等:x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
- 选定一个整数2≤t≤m,然后令每一个 ai 都变为 gcd(ai,t),其中 gcd(x,y) 表示 x,y 的最大公因数,例如 gcd(4,6)=2,gcd(15,21)=3。
请帮助 Eve 求出最少操作多少次能够使得数组里元素全部相等,如果无论多少次操作都不能达成目标,则输出 −1。x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
输入格式
第一行一个整数 T 表示数组组数,对于每组数据:x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
第一行两个正整数 n,m。x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
第二行 n 个整数 a1,a2,…,an。x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
输出格式
对于每组数据,如果能使得数组元素全相等,输出一行一个非负整数表示最小操作次数,否则输出一行 -1
。x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
数据范围
对于 30%的数据,∑n≤20,m≤20。x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
对于 60% 的数据,∑n≤3×10^5,m≤1000。x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
对于 100% 的数据,1≤T≤10^5,1≤n≤10^5,∑n≤3×10^5,2≤m≤10^6,2≤ai≤m。x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
样例数据
输入:
x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库2
x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库3 343
x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库343 343 343
x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库5 100
x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库4 8 12 16 20
x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库输出:
x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库0
x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库1
x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库说明:
x9V100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库对于第二组数据,取t=4操作一次即可使数组元素全变为4。