題目
一個畢達哥拉斯三元組是一個包含三個自然數的集合,
a<b<c ,滿足條件:a2+b2=c2
例如:32+42=9+16=25=52
已知存在並且只存在一個畢達哥拉斯三元組滿足條件a+b+c=1000 。
找出該三元組中abc 的乘積。
解題方法
此題的關鍵就是a,b和c的取值上界,c可以由a和b確定,所以只要計算a和b的上界即可。
因爲
又因爲
程序
public static void solve() {
for (int a=1;a<333;a++) {
for (int b=a+1;b<(1000-a)/2;b++){
int c = 1000-a-b;
if (a*a+b*b==c*c){
System.out.println(a*b*c);
break;
}
}
}
}