Add divisors to math.primes.factors
parent
3c91ad043f
commit
4d5392fe56
|
@ -1,7 +1,7 @@
|
|||
USING: help.markup help.syntax math sequences ;
|
||||
IN: math.primes.factors
|
||||
|
||||
{ factors group-factors unique-factors } related-words
|
||||
{ divisors factors group-factors unique-factors } related-words
|
||||
|
||||
HELP: factors
|
||||
{ $values { "n" "a positive integer" } { "seq" sequence } }
|
||||
|
@ -21,3 +21,7 @@ HELP: unique-factors
|
|||
HELP: totient
|
||||
{ $values { "n" "a positive integer" } { "t" integer } }
|
||||
{ $description { "Return the number of integers between 1 and " { $snippet "n-1" } " that are relatively prime to " { $snippet "n" } "." } } ;
|
||||
|
||||
HELP: divisors
|
||||
{ $values { "n" "a positive integer" } { "seq" sequence } }
|
||||
{ $description { "Return the ordered list of divisors of " { $snippet "n" } ", including 1 and " { $snippet "n" } "." } } ;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
USING: math.primes.factors tools.test ;
|
||||
USING: math.primes.factors sequences tools.test ;
|
||||
|
||||
{ { 999983 999983 1000003 } } [ 999969000187000867 factors ] unit-test
|
||||
{ { } } [ -5 factors ] unit-test
|
||||
|
@ -8,3 +8,5 @@ USING: math.primes.factors tools.test ;
|
|||
{ 0 } [ 1 totient ] unit-test
|
||||
{ { 425612003 } } [ 425612003 factors ] unit-test
|
||||
{ { 13 4253 15823 32472893749823741 } } [ 28408516453955558205925627 factors ] unit-test
|
||||
{ { 1 2 3 4 6 8 12 24 } } [ 24 divisors ] unit-test
|
||||
{ 24 } [ 360 divisors length ] unit-test
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
! Copyright (C) 2007-2009 Samuel Tardieu.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: arrays combinators kernel make math math.functions
|
||||
math.primes sequences ;
|
||||
math.primes math.ranges sequences sequences.product sorting ;
|
||||
IN: math.primes.factors
|
||||
|
||||
<PRIVATE
|
||||
|
@ -41,3 +41,7 @@ PRIVATE>
|
|||
{ [ dup 2 < ] [ drop 0 ] }
|
||||
[ dup unique-factors [ 1 [ 1- * ] reduce ] [ product ] bi / * ]
|
||||
} cond ; foldable
|
||||
|
||||
: divisors ( n -- seq )
|
||||
group-factors [ first2 [0,b] [ ^ ] with map ] map
|
||||
[ product ] product-map natural-sort ;
|
||||
|
|
Loading…
Reference in New Issue