Source: https://www.mathi.uni-heidelberg.de/~roquette/fermat.pdf