如何设置平方根只是整体

时间:2015-03-29 20:46:37

标签: math square-root

我似乎无法找到任何答案,但是如果我有一个像(X^2-4n)的平方根这样的方程式,其中4n是常数,我怎么能设置x所以等式给出整数。

我知道将x设置为n + 1有效,但我正在寻找能够生成所有解决方案的算法。

1 个答案:

答案 0 :(得分:3)

所以,问题是找到所有整数对(x, m),以便:

sqrt(x^2 - 4n) = m

我们有:

x^2 - 4n = m^2

x^2 - mˆ2 = 4n

所以

(x + m)(x - m) = 4n

现在,2除以4n,因此必须划分(x+m)(x-m)。但是,如果将它们中的任何一个分开,它也会分裂另一个。因此a := (x+m)/2b := (x-m)/2都是整数。因此

a*b = n

因此,只需将n分解为a*b以及所有可能的方式,并从上面的等式中恢复xm

x = a + b.
m = a - b.

您的解决方案x = n+1对应于n = n*1a=n所需的微不足因素化b=1

<强>更新

这是一个打印所有对(x, m)

的算法
  1. [初始化] a:= n。
  2. [检查] 如果n % a = 0那么
    • b := n / a
    • print(a + b), print(a - b)
  3. [减少] a:= a - 1。
  4. [结束?] 如果a * a > n转到第2步。