Weird grading system
Javascript (ES6), 51 bytes
n=>"ABCDEF"[(n<14)+(n<171)+(n<181)+(n<295)+(n<301)]
Alternative solutions (longer):
53 52 bytes (-1 byte thanks to @Arnauld)
n=>"FEDCBA"[n>300?5:n>294?4:n>180?3:n>170?2:+(n>13)]
55 53 bytes (-2 bytes thanks to @Neil)
n=>"AFEDCB"[[14,171,181,295,301].findIndex(m=>n<m)+1]
55 bytes
n=>"FEDCBA"[[13,170,180,294,300].filter(m=>n>m).length]
Example code snippet:
f=
n=>"ABCDEF"[(n<14)+(n<171)+(n<181)+(n<295)+(n<301)]
console.log(f(12))
console.log(f(15))
console.log(f(301))
console.log(f(181))
TI-Basic, 40 bytes
sub("FEDCBA",sum(Ans≥{0,14,171,181,295,301}),1
J, 31 bytes
'FEDCBA'{~13 170 180 294 300&I.
Try it online!
Explanation
'FEDCBA'{~13 170 180 294 300&I. Input: n
13 170 180 294 300 Constant array [13, 170, 180, 294, 300]
&I. Use it with interval index to find which of
the intervals (-∞, 13], (13, 170], (170, 180],
(180, 294], (294, 300], (300, ∞) n can be inserted at
{~ Index into
'FEDCBA' This string and return that char