#include<iostream>
using namespace std;
int main()
{
for(int i=1;i<=1000;i++){
for(int j=1;j<=1000;j++){
for(int k=1;k<=1000;k++){
if(i+j+k==1000&&i*i+j*j==k*k){
cout<<i<<" "<<j<<" "<<k<<endl;
cout<<i*j*k<<endl;
return 0;
}
}
}
}
return 0;
}
暴力的方法没什么实际意义:
#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;
int gcd(int a, int b) {
return (b?gcd (b, a % b):a);
}
int main() {
int ans = 0;
for (int n = 1; n <= 33; n++) {
for (int m = 1; m*m + n*n <= 1000; m++) {
if(gcd(n,m) != 1) continue;
int a = 2*n*m;
int b = m * m - n * n;
int c = m * m + n * n;
if (1000 % (a + b + c) == 0) {
int k = 1000/(a+b+c);
a *= k;
b *= k;
c *= k;
ans = a*b*c;
}
if(ans) break;
}
if(ans) break;
}
cout<<ans<<endl;
return 0;
}