A4931 – L’entier et son double mime
Déterminer le plus petit entier M tel qu’il existe une première suite de n entiers consécutifs positifs dont la somme des carrés est égal à M et une deuxième suite de 2n entiers
consécutifs positifs dont la somme des carrés est égal à 2M.
Solution proposée par Nicolas Petroff
,
, .
Le minimum de M (ou sera obtenu en minimisant n, , sachant que , doivent être > 0 .
Un automate Excel (voir listing ci-dessous) à recherche exhaustive sur les trois variables donne les cinq 1ères premières solutions suivantes :
n
8 5 0
12 13 6
16 25 16
20 41 30
24 61 48
Donc la plus petite valeur de M (= ) compatible avec les conditions du problème est donnée par (n, , ) = (12, 13, 6) M = 4250 .
---
Listing automate : Sub calcul123_abc()
Dim ligne_courante As Variant Dim var1 As Variant
Dim var2 As Variant Dim var3 As Variant Dim résultat As Variant Dim increment As Variant Dim init_val1 As Variant Dim val_max1 As Variant Dim init_val2 As Variant Dim val_max2 As Variant Dim init_val3 As Variant Dim val_max3 As Variant
init_val1 = InputBox("init_val1 = ") val_max1 = InputBox("val_max1 = ")
init_val2 = InputBox("init_val2 = ") val_max2 = InputBox("val_max2 = ") init_val3 = InputBox("init_val3 = ") val_max3 = InputBox("val_max3 = ")
increment = InputBox("increment = ")
ligne_courante = InputBox("ligne_courante = ") ligne_courante = Val(ligne_courante) - Val(1)
var1 = Val(init_val1)
Do While var1 < Val(val_max1) + Val(1)
var2 = Val(init_val2)
Do While var2 < Val(val_max2) + Val(1)
var3 = Val(init_val3)
Do While var3 < Val(val_max3) + Val(1)
résultat = (Val(2)) * ((Val(var1)) ^ 2) + (Val(var1)) * ((Val(4)) * (Val(var3)) - (Val(2)) * (Val(var2)) - Val(1))
résultat = résultat - (Val(2)) * (Val(var3) - Val(var2)) * (Val(1) - Val(var2) - Val(var3))
If résultat = Val(0) Then
ligne_courante = Val(ligne_courante) + Val(1) Range("A" & ligne_courante).Select
ActiveCell.FormulaR1C1 = Val(var1) Range("B" & ligne_courante).Select ActiveCell.FormulaR1C1 = Val(var2) Range("C" & ligne_courante).Select ActiveCell.FormulaR1C1 = Val(var3)
End If
var3 = Val(var3) + Val(increment) Loop
var2 = Val(var2) + Val(increment) Loop
var1 = Val(var1) + Val(increment) Loop
End Sub
---