Fermat's two-square theorem