给定一个数N,我如何知道N^2是否可以表示为两个非零整数的平方和例如,如果n=10,则10^2可以表示为(6^2)+(8^2)。我读过这样的数字n可以表示为4k+1,但即使是9也符合这个表达式,但81不能表示为两个整数的平方和。正确的方法是什么?
最佳答案
你想要的数字是毕达哥拉斯三元组的斜边(“c”值),OEIS中的A009000序列这里的注释指出,一个数是斜边,当且仅当它可以被4k+1形式的至少一个素数整除时。所以你可以通过获得一个数的素因子分解来检查它是否是斜边,然后看看当除以4时,这些素数中是否有1的余数。
在您的例子中,81不符合条件,因为它的唯一素因子是381可被9整除,但9不是素数。