Category talk:Wren-gmp: Difference between revisions

→‎Source code (Wren): Added divisors and properDivisors methods to Mpz.
(→‎Source code (Wren): Added some methods to make dealing with negative numbers more convenient.)
(→‎Source code (Wren): Added divisors and properDivisors methods to Mpz.)
Line 576:
if (m is Num) m = Mpz.from(m)
return primeFactors_(m, true)
}
 
// Returns all the divisors of 'n' including 1 and 'n' itself.
static divisors(n) {
if (n <= Mpz.zero) return []
var factors = Mpz.primeFactors(n)
var divs = [Mpz.one]
for (p in factors) {
for (i in 0...divs.count) divs.add(divs[i]*p)
}
divs.sort()
var c = divs.count
if (c > 1) {
for (i in c-1..1) {
if (divs[i-1] == divs[i]) divs.removeAt(i)
}
}
return divs
}
 
// Returns all the divisors of 'n' excluding 'n'.
static properDivisors(n) {
var d = divisors(n)
var c = d.count
return (c <= 1) ? [] : d[0..-2]
}
 
9,476

edits