summaryrefslogtreecommitdiff
path: root/factors/score.go
diff options
context:
space:
mode:
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
+}