mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-07-03 11:16:36 +02:00
add factor-alist and export it (chibi math prime)
a more useful version of factor
This commit is contained in:
parent
680aede9ae
commit
2759aaa306
3 changed files with 16 additions and 1 deletions
|
@ -90,6 +90,11 @@
|
|||
(test '(3 3 3 5 7) (factor 945))
|
||||
(test-error (factor 0))
|
||||
|
||||
(test '() (factor-alist 1))
|
||||
(test '((2 . 3) (3 . 2)) (factor-alist 72))
|
||||
(test '((3 . 3) (5 . 1) (7 . 1)) (factor-alist 945))
|
||||
(test-error (factor-alist 0))
|
||||
|
||||
(test 0 (aliquot 1))
|
||||
(test 975 (aliquot 945))
|
||||
(test-error (aliquot 0))
|
||||
|
|
|
@ -226,6 +226,15 @@
|
|||
(lp (+ i 2) (+ ii (* (+ i 1) 4))
|
||||
n (put res i k)))))))))))))
|
||||
|
||||
;;> Returns the factorization of \var{n} as a list of
|
||||
;;> elements of the form \scheme{(\var{p} . \var{k})},
|
||||
;;> where \var{p} is a prime factor
|
||||
;;> and \var{k} is its multiplicity.
|
||||
(define factor-alist
|
||||
(let ((rfactor (make-factorizer '()
|
||||
(lambda (l p k) (cons (cons p k) l)))))
|
||||
(lambda (n) (reverse (rfactor n)))))
|
||||
|
||||
;;> Returns the factorization of \var{n} as a monotonically
|
||||
;;> increasing list of primes.
|
||||
(define (factor n)
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
((library (srfi 151)) (import (srfi 151)))
|
||||
((library (srfi 33)) (import (srfi 33)))
|
||||
(else (import (srfi 60))))
|
||||
(export prime? nth-prime prime-above prime-below factor perfect?
|
||||
(export prime? nth-prime prime-above prime-below
|
||||
factor factor-alist perfect?
|
||||
totient aliquot
|
||||
provable-prime? probable-prime?
|
||||
random-prime random-prime-distinct-from
|
||||
|
|
Loading…
Add table
Reference in a new issue