0

在球拍中,我如何使用filterand创建一个过程,gcd它执行以下操作:

(list-of-numbers) number = > (list)

结果列表在哪里包含列表中与单个数字相对质数的数字?

编辑:到目前为止,我已经想出了以下代码:

(define (coprime? list-of-num n)
 (cond 
  [(empty? list-of-num) empty]
  [else
   (filter (lambda (num)
           (= (gcd (first list-of-num) n) 1)) num))]))

但我完全迷失了,意识到这有点乱。我的一般想法是创建一个布尔函数,只要(gcd number-from-list number)等于一就返回#t,然后该过程过滤列表中导致#t 的每个数字。

4

1 回答 1

1

只需使用相对素数的定义,解决方案自然如下:

(define (relative-primes lst num)
  (filter (lambda (e)
            <???>) ; see definition of relative primes
          lst))
于 2013-11-14T21:31:02.750 回答