Untitled
unknown
c_cpp
3 years ago
1.1 kB
8
Indexable
// Résolution du problème.
// a <= b <= c <= d
for (int a = 1; a <= A; a++) { // 1 <= a <= A
for (int b = 1; b <= B; b++) { // 1 <= b <= B
// Vérifier si a ET b sont impaires.
if (a % 2 != 0 && b % 2 != 0) {
continue;
}
else { // Au moins a OU b est pair.
// Chercher un nombre p > 1 qui divise a^2+b^2 et tel que p^2 < a^2 + b^2.
for (int p = 2; (p*p) < (a*a + b*b); p++) { // p > 1
if ((a*a + b*b) % p == 0) { // p divise a^2+b^2
// On peut maintenant calculer c et d.
int c = (a*a + b*b - p*p) / (2 * p);
int d = (a*a + b*b + p*p) / (2 * p);
// a <= b <= c <= d ET a^2 + b^2 + c^2 = d^2
if (a <= b && b <= c && c <= d && (a*a) + (b*b) + (c*c) == (d*d)) {
cout << a << ' ' << b << ' ' << c << ' ' << d << endl;
}
}
}
}
}
}Editor is loading...