一个整数,它加上100后是一个完全平方
假设这个数是x,加上100之后可以表示成a^2,再加上168之后可以表示成b^2。
其中,b>a>=0。
那么a^2 = x + 100, b^2 = a^2 + 168
所以b^2 - a^2 = 168
也即
(b-a)(b+a) = 168。
168 = 2×2×2×3×7
可以分解成
1×168
2×84
3×56
4×42
6×28
7×24
8×21
12×14
的组合。
需要注意b-a和b+a具有相同的奇偶性,所以在刚才的因式分解中过滤掉奇偶性不同的组合,余下
2×84
4×42
6×28
12×14
令其中较大的为b+a,较小的为b-a,解得符合要求的(a,b) 这样的...全部
假设这个数是x,加上100之后可以表示成a^2,再加上168之后可以表示成b^2。
其中,b>a>=0。
那么a^2 = x + 100, b^2 = a^2 + 168
所以b^2 - a^2 = 168
也即
(b-a)(b+a) = 168。
168 = 2×2×2×3×7
可以分解成
1×168
2×84
3×56
4×42
6×28
7×24
8×21
12×14
的组合。
需要注意b-a和b+a具有相同的奇偶性,所以在刚才的因式分解中过滤掉奇偶性不同的组合,余下
2×84
4×42
6×28
12×14
令其中较大的为b+a,较小的为b-a,解得符合要求的(a,b) 这样的整数对有:
(41, 43), (19, 23), (11, 17), (1, 13)
所以a的可能值为41, 19, 11或者1。
a^2 - 100的可能值为1581, 261, 21, -99。
所以所求的整数有4个,
分别是-99, 21, 261和1581。
JAVA程序,我用的Visual studio 2005下的VJ++,
创建空的工程直接修改的main。
package ConsoleApplication1;
/**
* Program 的摘要说明
*/
public class Program
{
public static void main(String[] args)
{
//
// TODO。
收起