Я искал алгоритм Евклида для поиска GCD чисел. Теперь его можно использовать для поиска GCD двух заданных чисел. Однако, если мне присваивается GCD одного числа с несколькими другими числами, например, GCD первого номера с тремя другими номерами (включая себя), то естьПоиск номеров с заданными значениями GCD
Дано: GCD of a, GCD a с b, GCD группы a с c, GCD группы a с d. , и то же самое относится к другим номерам, то есть GCD из b с a, b с b, .....
Затем, как я могу найти отдельные номера? Я знаю, что GCD (a, a) = a, но проблема здесь заключается в том, что отдельные данные GCD находятся в произвольном порядке, и поэтому я не знаю, какое входное число является GCD, из которых два числа. В этом случае, как мне найти отдельные номера?
Вот мой НОД код:
int gcd(int a,int b)
{
if(b==0)
{
return a;
}
return gcd(b,a%b);
}
Пример: Допустим, вход дал есть,
3 1 3 1 4 2 2 3 6
3 //(total numbers we have to find in original array)
Тогда выход должен быть, 3 4 6. Потому что, если вычислить НОД парно (всего 9 пар и, следовательно, 9 чисел в качестве входных данных) каждого из этих чисел, то мы получаем результат, как указано выше.
Explanation: 3 -> GCD of (3,3)
1 -> GCD of (3,4)
3 -> GCD of (3,6)
1 -> GCD of (4,3)
4 -> GCD of (4,4)
2 -> GCD of (4,6)
6 -> GCD of (6,6)
3 -> GCD of (6,3)
2 -> GCD of (6,4)
Поэтому я должен найти номера, GCD которых указан в качестве входных данных. Следовательно, (3,4,6) - эти числа.
Просьба привести пример входов и то, что вы ожидаете получить в качестве вывода. –
Не могли бы вы объяснить свои входы? и какие 9 пар вы имеете в виду? какую пару чисел вы хотите найти gcd? – vicky96
Посмотрите на китайскую теорему о остатках. –