例子:
一个整数,加上100后是一个完全平方数,再加上188也是一个完全平方数。
请问该数是多少?
解决思路:
设该数为 x
- x+100=,x+100+188=
- -=(m+n)(m-n)=188
- 令 (m+n)=i ,(m-n)=j 则 =188
- 因只有奇数相乘结果才为奇数 所以 i 和 j 至少一个是偶数
- 又因 m = (i + j) / 2 ,n = (i - j) / 2
- 所以 i 和 j 要么都是偶数,要么都是奇数
- 推导4-6可知: i 与 j 均是大于等于 2 的偶数
- 由 =188, j>=2,则 1 < i < 188 / 2 + 1
#includeint main() { int i, j, m, n, x; for (i = 1; i < 188 / 2 + 1; i++) { if (188 % i == 0) { j = 188 / i; if (i > j && (i + j) % 2 == 0 && (i - j) % 2 == 0) { m = (i + j) / 2; n = (i - j) / 2; x = n * n - 100; printf("这个数为 %dn", x); printf("%d + 100 = %d * %dn", x, n, n); printf("%d + 268 = %d * %dn", x, m, m); printf("n"); } } } return 0; } // 运行结果 // 这个数为 2016 // 2016 + 100 = 46 * 46 // 2016 + 268 = 48 * 48



