【java练习题13】--完全平方数
【程序13】 ??
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? ??
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
?
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<100000;i++) ?
? ? ? ? { ?
? ? ? ? ? ? //判断开平方根出来的数小数部分是否为0, ?
? ? ? ? ? ? if(Math.sqrt((i+100))%1==0 && Math.sqrt((i+100+168))%1==0) ?
? ? ? ? ? ? { ?
? ? ? ? ? ? ? ? System.out.println(i); ?
? ? ? ? ? ? } ?
? ? ? ? } ?
}
1 楼 mfkvfn 2012-04-25 a^2=X+100b^2=X+168
则 b^2-a^2=(X+168)-(X+100)
即 (b+a)*(b-a)=68
由于a,b都是正整数,而68只有1*68,2*34,4*17几种组合。
所以只可能有几种情况:
1 b+a=68且b-a=1
2 b+a=34且b-a=2
3 b+a=17且b-a=4
三种情况,只有第2种情况a,b的整数解a=16,b=18。
则X一定是16^2=X+100的解,X=156。
根本用不着算10万以内,而且又是平方根什么的。