diff options
| author | Adrien Hopkins <adrien.p.hopkins@gmail.com> | 2023-10-30 13:59:27 -0500 |
|---|---|---|
| committer | Adrien Hopkins <adrien.p.hopkins@gmail.com> | 2023-10-30 13:59:27 -0500 |
| commit | e0e6cbd3cedb13b2180773ad2892aa081026dc09 (patch) | |
| tree | a68cc0460fa7fedc2ca99f2fc5b935a0ae6d5a3a | |
| parent | 7fe152e1de2ce0ff9716d54bd03ec090a601824a (diff) | |
Improve readability of PrimeFactorization.String
| -rw-r--r-- | factors/prime_factorization.go | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/factors/prime_factorization.go b/factors/prime_factorization.go index d9f11e5..52df2c1 100644 --- a/factors/prime_factorization.go +++ b/factors/prime_factorization.go @@ -69,19 +69,15 @@ func (factors PrimeFactorization) Size() int { // String returns a string representation of the prime factorization, // which looks like "2^2 × 3". func (factors PrimeFactorization) String() string { - parts := make([]string, 0, factors.Size()) - primes := make([]int, 0, factors.Size()) - for p := range factors.exponents { - primes = append(primes, int(p)) - } - slices.Sort(primes) + primesSorted := factors.Primes() + slices.Sort(primesSorted) - for _, p := range primes { - if factors.Exponent(uint(p)) == 1 { + parts := make([]string, 0, factors.Size()) + for _, p := range primesSorted { + if factors.Exponent(p) == 1 { parts = append(parts, fmt.Sprintf("%d", p)) } else { - parts = append(parts, fmt.Sprintf("%d^%d", p, - factors.Exponent(uint(p)))) + parts = append(parts, fmt.Sprintf("%d^%d", p, factors.Exponent(p))) } } return strings.Join(parts, " × ") |
