6个回答
展开全部
假设这个数是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: 在此处添加启动应用程序的代码
//
int a, b;
for (a = 0; a < 168; a++)
{
for (b = a; b < 168; b++)
{
if (b * b - a * a == 168)
System.out.println("Found x = " + (a * a - 100));
}
}
System.out.println("Searching end.");
}
}
希望有用。
其中,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: 在此处添加启动应用程序的代码
//
int a, b;
for (a = 0; a < 168; a++)
{
for (b = a; b < 168; b++)
{
if (b * b - a * a == 168)
System.out.println("Found x = " + (a * a - 100));
}
}
System.out.println("Searching end.");
}
}
希望有用。
展开全部
设加上100以后是a²,加上168以后是b²
a,b为正整数且b>a
b²-a²=168-100=68
(b-a)(b+a)=68
b-a与b+a奇偶性相同
68=2×34
b-a=2
b+a=34
a=16,b=18
这个数是:16²-100=156
a,b为正整数且b>a
b²-a²=168-100=68
(b-a)(b+a)=68
b-a与b+a奇偶性相同
68=2×34
b-a=2
b+a=34
a=16,b=18
这个数是:16²-100=156
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class A
{public static void main(String []args)
{for(int a=10;a<10000;a++)
{for(int b=1;b<10000;b++)
{if((a*a+168)==(b*b))
{System.out.println (a*a-100+"a="+a+"b="+b);
}
}}}}
答案21a=11b=17
261a=19b=23
1581a=41b=43
请按任意键继续. . .
{public static void main(String []args)
{for(int a=10;a<10000;a++)
{for(int b=1;b<10000;b++)
{if((a*a+168)==(b*b))
{System.out.println (a*a-100+"a="+a+"b="+b);
}
}}}}
答案21a=11b=17
261a=19b=23
1581a=41b=43
请按任意键继续. . .
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
156
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
21
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询