Source: https://ocw.mit.edu/courses/18-781-theory-of-numbers-spring-2012/de23a8d881a615303f6d4fa665669dc9_MIT18_781S12_lec4.pdf