Пары взаимно простых чисел

      Комментарии к записи Пары взаимно простых чисел отключены

В этой теме 1 ответ, 2 участника, последнее обновление  Васильев Владимир Сергеевич 2 нед. назад.

  • Автор
    Сообщения
  • #3913

    Zzz
    Участник

    Здравствуйте, помогите пожалуйста решить и разобраться с задачками на чистом Prolog.

    Есть два списка. Сформировать список пар взаимно простых чисел, выбирая первый номер пары из первого списка, а второй — со второго.

  • #3923

    Для решения задачи нам потребуется функция проверки чисел на взаимную простоту, а также функция member для организации перебора чисел.

    co_prime_pairs(ListA, ListB, pair(A, B)):-
      member(A, ListA),
      member(B, ListB),
      co_primes(A, B).

    За счет использования базового для логического программирования механизма поиска с возвратами, вызовы member обеспечат генерацию всех возможных пар чисел из двух списков. Наша функция вернет пару лишь в том случае, если числа являются взаимно-простыми:

    Если в результате работы функции требуется сформировать список пар — можно использовать функцию findall:

    co_prime_pairs_list(ListA, ListB, Pairs):-
      findall(X, co_prime_pairs(ListA, ListB, X), Pairs).

Для ответа в этой теме необходимо авторизоваться.