A375. Les produits miroirs
A3. Nombres remarquables
Problème proposé par Michel Lafond
Les nombres qui interviennent dans cet exercice sont les nombres décimaux X d’écritures X = c
mc
m-1c
m-2....c
2c
1c
0,d
1d
2d
3....d
n-1d
nm ≥ 0 et n ≥ 1
L’entier d’écriture N = c
mc
m-1c
m-2....c
2c
1c
0est écrit N = c
mc
m-1c
m-2....c
2c
1c
0,0 tandis que 0 est écrit 0,0.
On appelle miroir du décimal X = c
mc
m-1c
m-2....c
2c
1c
0,d
1d
2d
3....d
n-1d
nle décimal d
nd
n-1...d
2d
1,c
0c
1c
2...c
m-2c
m-1c
mobtenu en écrivant les chiffres de X de droite à gauche et en préservant la virgule.
Enfin, un décimal est dit produit miroir s’il est le produit de deux décimaux miroirs.
Exemples :
129,682 = 3,14 x 41,3 , 50,92 = 6,7 x 7,6 et 2018,25981 = 152,31 x 13,251 sont des produits miroirs.
Q1 Trouver un produit miroir de partie entière 2019.
Q2 Approcher au mieux 2019 par un produit miroir.
Q3 Trouver au moins 3 produits miroirs entiers.
Solution de Paul Voyer Q1
On cherche ab,cde*edc,ba = 2019,…..
ou ab,cd*dc,ba = 2019,….
Avec une macro excel, on trouve 25,08*80,52 = 2019,4416 Q2
On recherche alors le plus petit 2019 ou le plus grand 2018 2019,0376 = 42,74*47,24 est le plus proche de 2019
Q3
La partie décimale est un multiple impair de 0.5, 0.25, 0.125, etc…
0 = 0,0*0,0 trivial 13 = 2.5*5.2 évident
La recherche s'effectue avec une macro similaire à la précédente.
Pas de résultat avec 2 décimales.
Avec 3 décimales, on trouve : 388 462 = 671.875*578.176 Annexe
Macro de Q2
Sub Macro1() '
' Macro1 Macro
' Macro enregistrée le 22/03/2019 par Paul '
Dim chain As String best = 10
For a = 0 To 9 For b = 0 To 9 For c = 0 To 9 For d = 0 To 9 For e = 0 To 9
n1 = 10000 * a + 1000 * b + 100 * c + 10 * d + e n2 = 10000 * e + 1000 * d + 100 * c + 10 * b + a
prod = n1 * n2
chain = LTrim(Str(prod)) ' LTrim pour enlever l'espace de début chain2 = Left$(chain, 4)
If chain2 > "2019" Then GoTo nexte If chain2 < "2018" Then GoTo nexte
If (Abs(prod / 10 ^ 5 - 2019)) >= best Then GoTo nexte best = Abs(prod / 10 ^ 5 - 2019)
Range("b1") = best Range("b2").Value = n1 Range("a1").Value = prod Range("a2").Value = a Range("a3").Value = b Range("a4").Value = c Range("a5").Value = d Range("a6").Value = e nexte: Next e Next d Next c Next b Next a End Sub