File: prime.l

package info (click to toggle)
euslisp 9.27%2Bdfsg-7
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 55,344 kB
  • sloc: ansic: 41,162; lisp: 3,339; makefile: 256; sh: 208; asm: 138; python: 53
file content (24 lines) | stat: -rw-r--r-- 543 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
(defun prime (n)
    (let ((primes (make-array n))
	  i j r (end (ceiling (sqrt n))))
       (declare (vector primes) (integer i j r))
       (fill  primes t)
       (setf (aref primes 2) t
	     (aref primes 3) t)
       (setq i 2)
       (while (< i end)
          (when (aref primes i)
            (setq j (+ i i))
            (while (< j n)
	      (setf (aref primes j) nil)
	      (incf j i)))
	  (incf i ))
       (setq i 2)
       (while (< i n) 
	  (if (aref primes i)
	      (push i r) )
          (incf i))
       r
       ))