Номер для школьной команды
Условие
В школе собирают команду на турнир. У каждого ученика на бейдже напечатано положительное число.
Классный руководитель хочет выбрать один общий «номер команды» d и наклеить его на бейджи. Ученик согласен, если его число делится на d без остатка.
Нужно выбрать самый большой возможный d так, чтобы согласились хотя бы k учеников.
Формат ввода
В первой строке дано целое число t — количество наборов данных. Далее идут t наборов данных. В каждом наборе в первой строке даны два целых числа n и k. Во второй строке даны n целых чисел a1, a2, ..., an.
Формат вывода
Для каждого набора данных выведите одно целое число — максимальный d, который делит без остатка хотя бы k чисел из списка. Ответы выводите в отдельных строках.
Ограничения
- 1 ≤ t ≤ 4
- 1 ≤ n ≤ 200000
- 1 ≤ k ≤ n
- 1 ≤ ai ≤ 1000000
- Сумма значений n по всем наборам не превышает 200000.
- Время: 1 секунда
- Память: 256 МБ
Пример
Ввод: 3 1 1 1 1 1 1000000 5 3 2 4 6 9 12
вывод: 1 1000000 3
Решить задачу с автопроверкой на Python →
Куда дальше
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами
- Олимпиада по информатике: с чего начать — два мира олимпиад — ВсОШ и перечневые: этапы, задания и на каком языке писать
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс