🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.sci.math
Article #13527

Re: how to calculate prime numbers

#13527
From: 戸梶明夫
Date: Sat, 05 Oct 1996 00:00
43 lines
1721 bytes
Newsgroups: fj.sci.math,fj.lang.lisp
In-reply-to: p96952tk@sfc.keio.ac.jp's message of Tue, 1 Oct 1996 17:53:49 
GMT

戸梶@NIFTYです。

> 中学生である私の弟に、今度「できるだけ大きな素数を求められるプログラム
> を作って提出せよ」という任意の宿題が出たので教えて欲しいと頼まれてしま
> いました。
> エラトステネスのふるい等のアルゴリズムを試したのですが、主に速度の点で
> 納得できず、もう少し調べてみようと考えています。
> 
> どなたか、コンピューターによる素数生成アルゴリズムに関する文献またはア
> ルゴリズムそのものの概略を教えていただけないでしょうか。よろしくお願い
> します。

Mick-Lisp を使って、「エラストネスのふるい」により素数を求める関数を作っ
てみました。*prime-numbers* というグローバル変数に素数のリストを記憶し
ておいて次回の呼出しの時に再利用されます。

(defvar *prime-numbers* (list 2))

(defun primes (max)
  (invoke-for ((n (1- max)))
    (setq n (+ n 2))
    (if (or (<= n (car *prime-numbers*))
            (select-for* ((x *prime-numbers*))
              (zerop (% n x))
              )
            )
        nil
      (setq *prime-numbers* (cons n *prime-numbers*))
      )
    )
  (reverse *prime-numbers*)
  )

(primes 20)
(2 3 5 7 11 13 17 19)

--
戸梶  明夫
Technical Details
Message-ID: <INETNEWS-1-15-7.02750@niftyserve.or.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: f4956,81785fc4c46e609a
X-Google-Attributes: gidf4956,public
From: "戸梶 明夫 "
Subject: Re: how to calculate prime numbers
Date: 1996/10/05
Message-ID: <INETNEWS-1-15-7.02750@niftyserve.or.jp>
X-Deja-AN: 187905641
content-type: text/plain; charset=iso-2022-jp
mime-version: 1.0
newsgroups: fj.sci.math