summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrien Hopkins <adrien.p.hopkins@gmail.com>2023-10-30 13:59:27 -0500
committerAdrien Hopkins <adrien.p.hopkins@gmail.com>2023-10-30 13:59:27 -0500
commite0e6cbd3cedb13b2180773ad2892aa081026dc09 (patch)
treea68cc0460fa7fedc2ca99f2fc5b935a0ae6d5a3a
parent7fe152e1de2ce0ff9716d54bd03ec090a601824a (diff)
Improve readability of PrimeFactorization.String
-rw-r--r--factors/prime_factorization.go16
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, " × ")