Complexity Theory
P: problems that can be solved in polynomial time,
I.e. problems that can be solved “efficiently”
NP: broad set of problems that includes P
NP-complete: the hardest problems in NP, they appear to have no efficient solution
Factoring, discrete log are in NP, not known to be NP-complete or in P