summaryrefslogtreecommitdiff
path: root/factors/score.go
diff options
context:
space:
mode:
authorAdrien Hopkins <adrien.p.hopkins@gmail.com>2023-08-15 19:39:51 -0500
committerAdrien Hopkins <adrien.p.hopkins@gmail.com>2023-08-21 09:56:06 -0500
commit58df2b08f57076800745009aa4d562ef77ba6f9c (patch)
tree9bb5b52a3daac689d965634002c08a2fe68e6c03 /factors/score.go
parent564e53cdd4d6fc8b611d59c2c19af42864e6ece4 (diff)
Add 2345 Score to output
Diffstat (limited to 'factors/score.go')
-rw-r--r--factors/score.go39
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
+}