В ракетке, как я могу создать процедуру, используя filter
и gcd
, который делает следующее:Относительно простые числа из списка
(list-of-numbers) number = > (list)
Если полученный список включает в себя номера из списка, которые являются относительно простой с единственной?
EDIT: До сих пор я придумал следующий код:
(define (coprime? list-of-num n)
(cond
[(empty? list-of-num) empty]
[else
(filter (lambda (num)
(= (gcd (first list-of-num) n) 1)) num))]))
Но я полностью потерял и понимаю, что это своего рода беспорядок. Моя общая идея состоит в том, чтобы создать логическую функцию, возвращающую #t, когда (gcd number-from-list number)
равна единице, а затем процедура фильтрует каждое число из списка, что приводит к #t.
Вы называете 'filter', передавая ей массив и функцию, которая вызывает' gcd'. – Barmar
@ ÓscarLópez, см. Мое редактирование. –