Untitled
unknown
c_cpp
2 years ago
1.1 kB
7
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...