diff options
| author | Adrien Hopkins <adrien.p.hopkins@gmail.com> | 2023-08-15 19:39:51 -0500 |
|---|---|---|
| committer | Adrien Hopkins <adrien.p.hopkins@gmail.com> | 2023-08-21 09:56:06 -0500 |
| commit | 58df2b08f57076800745009aa4d562ef77ba6f9c (patch) | |
| tree | 9bb5b52a3daac689d965634002c08a2fe68e6c03 /factors/score.go | |
| parent | 564e53cdd4d6fc8b611d59c2c19af42864e6ece4 (diff) | |
Add 2345 Score to output
Diffstat (limited to 'factors/score.go')
| -rw-r--r-- | factors/score.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/factors/score.go b/factors/score.go index 707120d..b47aac4 100644 --- a/factors/score.go +++ b/factors/score.go @@ -26,3 +26,42 @@ func Score(n uint) float64 { } return float64(factorSum) / float64(n) } + +// BasicRank returns a rank describing how well a base handles the simplest +// fractions (1/2, 1/3, 1/4 and 1/5) +// also known as 2345 Rank +func BasicRank(n uint) string { + var firstRank, secondRank string + if n%2 == 0 { + if n%3 == 0 { + if n%4 == 0 { + firstRank = "A" + } else { + firstRank = "B" + } + } else { + if n%4 == 0 { + firstRank = "C" + } else { + firstRank = "D" + } + } + } else { + if n%3 == 0 { + firstRank = "E" + } else { + firstRank = "F" + } + } + + switch n % 5 { + case 0: + secondRank = "+" + case 1, 4: + secondRank = "~" + case 2, 3: + secondRank = "-" + } + + return firstRank + secondRank +} |
