A4902 − La traversée de la diaogonale [*** à la main]
Les longueurs des côtés d'un rectangle ABCD sont deux nombres entiers p et q relativement premiers entre eux tels que p < q et le périmètre du rectangle = 2(p + q) ≤ 2018. On trace les pq carrés de côté unité dont les côtés sont parallèles aux côtés du rectangle.
La diagonale AC traverse des carrés et délimite à l'intérieur de certains d'entre eux des petits triangles rectangles (voir un exemple supra) dont la somme des périmètres est un nombre entier égal au tiers du périmètre du triangle rectangle ABC.
Déterminer p et q.
Solution proposée par Bernard Vignes
Soit AC = r. Comme le périmètre du triangle ABC = p + q + r, les côtés du triangle ABC forment un triangle pythagoricien primitif (p,q,r) tels que p² + q² = r².
La somme des périmètres des triangles est égale à (p+1) (p+q+r)/q
On a donc la relation q = 3(p+1). d'où l'équation diophantienne 10p² + 18p + 9 = r² qui a pour solutions - p = 7, q = 24, r = 25 à exclure car la somme des périmètres des petits triangles (56/3) n'est pas entière - puis p = 155 , q = 468 , r = 493 qui convient avec la somme des périmètres des triangles = 372
On peut également obtenir cette solution à l'aide d'un petit programme qui donne les triangles pythagoriciens primitifs (p,q,r) pour lesquels la somme des périmètres des petits triangles est entière.
D'où le tableau ci-après dans lequel on retient l'unique solution (155,468,493) qui satisfait la relation périmètre ABC = 3* somme des périmètres des petits triangles/
Annexe
Sub macro20180327() For a = 1 To 1000 For b = a + 1 To 1000 k1 = 0
For k = 2 To a
If a / k = Int(a / k) And b / k = Int(b / k) Then k1 = 1: k = a + 1 Next k
If k1 = 0 Then c = Sqr(a ^ 2 + b ^ 2) If c = Int(c) Then
d = (a + b + c) * (a + 1) / b If d = Int(d) Then
kk = kk + 1
Range("A" & kk).Value = a Range("B" & kk).Value = b Range("C" & kk).Value = c Range("D" & kk).Value = d End If
End If End If Next b Next a End Sub