Currently `quadratic_residues(2)` returns `[0]` but it should be `[0, 1]`. Please correct that. Also, seems like there is a little debate over whether `0` should be included in the residues or not (Because, it's a trivial solution). Please take a look at [here](http://mathworld.wolfram.com/QuadraticResidue.html). It's not a big issue, but I would like to know your views on that. I am neutral
on the matter.