首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建只有某些质数因子的数字流

创建只有某些质数因子的数字流
EN

Stack Overflow用户
提问于 2014-12-01 07:49:13
回答 1查看 156关注 0票数 2

我想把数字1,2,3,4...并对其进行过滤,以便只有质数因子为7和13的数字在其中。(即7、13、49、91、169、343、...)

我已经启动了下面的函数,但是我搞不清楚如何正确地过滤出只有这些特定的质数因子的数字。

代码语言:javascript
复制
(define function
    (stream-filter
        (lambda (x)
            (or
                (= (/ x 7) 1)
                (= (/ x 13) 1)
                )
            )
        numbers
        )
    )

其中stream-filter与SICP的函数相同。

EN

回答 1

Stack Overflow用户

发布于 2014-12-01 07:54:25

这里有一个想法:找到数字的质数因子,并检查是否存在除713之外的其他因子

代码语言:javascript
复制
(define (factor number)
  (let loop ((divisor 2) (number number))
    (cond ((> (* divisor divisor) number) (list number))
          ((zero? (modulo number divisor))
           (cons divisor (loop divisor (/ number divisor))))
          (else (loop (add1 divisor) number)))))

(stream-filter
 (lambda (x)
   (null? 
    (filter (lambda (e) (not (or (= e 7) (= e 13))))
            (factor x))))
 numbers)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27219730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档