Blame


1 665c255d 2023-08-04 jrmu (defun filtered-accumulator (combiner null-value term a next b filter)
2 665c255d 2023-08-04 jrmu (cond ((> a b) null-value)
3 665c255d 2023-08-04 jrmu ((funcall filter a)
4 665c255d 2023-08-04 jrmu (funcall combiner
5 665c255d 2023-08-04 jrmu (funcall term a)
6 665c255d 2023-08-04 jrmu (filtered-accumulator combiner null-value term (funcall next a) next b filter)))
7 665c255d 2023-08-04 jrmu (t (filtered-accumulator combiner null-value term (funcall next a) next b filter))))
8 665c255d 2023-08-04 jrmu (defun sum-squares-of-primes (a b)
9 665c255d 2023-08-04 jrmu (filtered-accumulator #'+ 0 #'square a #'1+ b #'prime?))
10 665c255d 2023-08-04 jrmu (defun product-of-relatively-prime (n)
11 665c255d 2023-08-04 jrmu (defun relatively-prime-to-n? (k)
12 665c255d 2023-08-04 jrmu (= (gcd k n) 1))
13 665c255d 2023-08-04 jrmu (filtered-accumulator #'* 1 #'identity 1 #'1+ (1- n) #'relatively-prime-to-n?))