Frist psot

This commit is contained in:
scms 2024-02-29 10:29:58 -08:00
commit d368cd9468
3 changed files with 26 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*~

16
p77.lisp Normal file
View File

@ -0,0 +1,16 @@
(defun prime-sum-count (n primes)
(let ((primes-descending (reverse primes)))
(labels ((recurse (primes target)
(cond ((= target 0) 1)
((< target 0) 0)
((null primes) 0)
(t (+ (recurse primes (- target (first primes)))
(recurse (rest primes) target))))))
(recurse primes-descending n))))
(defun p77 (&key (ways 5000) (prime-count 1000))
(let ((primes (get-primes prime-count)))
(loop for n upfrom 1
for count = (prime-sum-count n primes)
until (> count ways)
finally (return n))))

9
shared.lisp Normal file
View File

@ -0,0 +1,9 @@
(defun get-primes (max)
(let ((primes nil)
(composites (make-array (1+ max) :initial-element 0)))
(loop for n from 2 upto max
do (when (= 0 (aref composites n))
(push n primes)
(loop for m from (* 2 n) upto max by n
do (incf (aref composites m)))))
(nreverse primes)))