Учитывая набор целых положительных чисел и целое число k
. Все элементы в комплекте делится на k
.Проверьте, является ли целое число GCD некоторых элементов в заданном наборе
Как проверить, является ли k
наибольшим общим делителем элементов в наборе?
Моя идея: Для каждого элемента a[i]
в комплекте я делю его на k
. Затем я получаю GCD всего элемента в наборе (который был изменен после того, как я разделил). Если GCD равен 1, то k
является GCD некоторых элементов в наборе.
У меня есть несколько тестовых примеров, и я вижу это правильно. Но онлайн-судья не принимает. Пожалуйста, дайте мне представление или проверьте мой алгоритм и исправьте его. Большое спасибо.
Позвольте мне говорить яснее:
Например, = {10, 15, 18}:
k = 5
является НОД (10, 15). Ответ true
k = 3
- GCD (15, 18). Ответ true
k = 1
- GCD (10, 15, 18). Ответ true
k = 6
не является GCD любой группы, которая содержит более 2 целых чисел. Ответ false
Размер набора: < = 100000
EDIT: Извините за то, что неправильный пример. Это была моя ошибка. k = 3
не является GCD (10, 18). Но я подумал, что вы, возможно, знаете, что это 15
, а не справа. :) Спасибо за ваши ответы, комментарии и вклад. Я проголосовал за принятый ответ ниже.
Где ваш код? – Paulo
@Paulo: На самом деле, это небольшая вещь в моей другой проблеме, о которой я спросил [здесь] (http://stackoverflow.com/questions/34471157/algorithm-gcd-and-lcm-problems). Поэтому я просто хочу проверить, правда ли эта идея. :) –
Посмотрите, подходит ли мой код тому, что вы хотите. – Paulo