|
Édition du: 29/03/2026 |
|
INDEX |
Équations |
||
|
|
|||
Faites un double-clic pour un retour en haut de page
![]()
|
Équation diophantienne Ay = c² – x² Cette
équation ne passe pas pour être une équation diophantienne profonde. |
||
|
|
Sommaire de cette page >>> Équation ay = c² – x² >>> Exemple avec petit nombre >>> Exemple avec grand nombre >>> Résolution en x et y ; a et c étant fixés >>> Plus petite solution en x >>>
Programmation Python |
Débutants Glossaire |
|
Objectif Il s’agit d’une équation
diophantienne. On cherche à résoudre
dans les entiers l’équation : où a est un entier fixé, et x, y et c sont des entiers inconnus. |
ay = c² – x² |
|
|
Idée
clé : utiliser une identité remarquable On reconnaît une
différence de deux carrés : |
ay = (c – x) (c + x) |
|
|
Changement
de variables On pose : Alors : et on peut inverser : |
u = c – x et v = c + x ay = uv
|
|
|
Condition Pour que x
et c soient entiers : u et v tous deux
pairs ou tous deux impairs. |
u et v de même parité |
|
|
Formule paramétrique Cette formule donne
toutes les solutions entières Pas d’essais successifs On ne cherche pas x ou y
au hasard ; on construit directement les solutions La méthode donne toutes
les solutions ; chaque factorisation de ay fournit une solution. |
|
|
|
On choisit : |
u = 120 , v = 144 |
|
|
Alors : Famille des solutions
pour a quelconque |
|
|
|
Choisissons a = 16 On vérifie que a divise
120 × 144 ; ce qui est le cas. |
|
|
|
Équation
reconstituée |
16 × 1080 = 132² –
12² 17 280 = 17 424 – 144 |
|
|
Pour garantir la
divisibilité de uv par a, on construit : Alors : |
u = a·m et v = n uv = a · m · n => y =
m · n ∈ ℤ |
||
|
Choix initial |
a = 1 000 000 m = 1 234 567 n = 9 876 543 210 |
||
|
Alors : |
u = 1 234 567 000 000 v = 9 876 543 210 |
||
|
Calculs : |
|
||
|
Vérification |
ay =
c² – x² 1 000
000 × 12 193 254 321 140 070 = 622 221
771 605² - 612 345 228 395² = 12 193 254 321 140 070 000 000 |
||
|
Condition d’existence de
solutions. Condition toujours
possible. |
ay = c² – x² => c² – x² ≡ 0 (mod a) ou c² ≡ x² (mod a) |
|
|
Cas 1 |
x = c + at
|
|
|
Cas 2 |
x = -c + at
|
|
|
Toutes les solutions
avec l’une de ces deux formules : |
|
|
|
On a : Il faudra choisir t pour
minimiser x (en valeur absolue). |
x = ± c (mod a) ou x = ± c + at |
|
|
Solutions possibles : Il faudra choisir la
plus petite valeur. |
x = r x = r – a x = -r x = a – r |
|
|
Exemple |
a = 16, c = 132 132 mod 16 ≡ 4 x = ± 4 (plus petit)
|
|
|
Programme avec a = 16 et c = 132 def solutions_diophantienne(a, c, t_min=-5, t_max=5): solutions = [] for t in range(t_min, t_max + 1): # Cas 1 x1 = c + a * t y1 = -2 * c * t - a * t**2 solutions.append((x1, y1)) # Cas 2 x2 = -c + a * t y2 = 2 * c * t - a * t**2 solutions.append((x2, y2)) return solutions def plus_petit_x(a, c): r = c % a candidats = [r, r - a, -r, a - r] x_min = min(candidats, key=abs) y = (c*c - x_min*x_min) // a return x_min, y # Exemple a = 16 c = 132 print("Plus petite
solution :") print(plus_petit_x(a, c)) print("\nQuelques
solutions :") for sol in solutions_diophantienne(a, c): print(sol) |
Résultats Plus
petite solution (x, y) : (4,
1088) ð 16 × 1088 = 132² – 4² = 17 408 Quelques
solutions (x, y): (52,
920) (-212,
-1720) (68,
800) (-196,
-1312) (84,
648) (-180,
-936) (100,
464) (-164,
-592) (116,
248) (-148,
-280) (132,
0) (-132,
0) (148,
-280) (-116,
248) (164,
-592) (-100,
464) (180,
-936) (-84,
648) (196,
-1312) (-68,
800) (212,
-1720) (-52,
920) |
||
|
Quelques plus petites solutions impliquant de
grands nombres |
12345 × 790160 = 98765² –
5² = 9754525200 1234567 ×
79012400 = 9876543² – 7² = 97546101630800 123456789 × 7901234640 =
987654321² - 9² = 975461057789970960 123456789101112 ×
7901234635109072 = 987654321098765² – 8289869² = 975461057985062330314956488064 |
||
Voir Programmation / Programmation Python
Haut de page (ou double-clic)
![]()
|
Suite |
|
|
Voir |
|
|
Cette page |
![]()