An Introduction to Number Theory - Everest, Graham (Springer-Verlag London Limited, 2005)