A371 − Les nombres harmonieux [*** à la main et avec l'aide éventuelle d'un automate]
Un entier naturel n est dit "harmonieux" quand la moyenne harmonique de ses diviseurs (y compris 1 et lui- même) est un entier appelé "harmonie"
Q₁ Déterminer deux entiers harmonieux inférieurs à 2018 dont l'un a 10 diviseurs et l'autre 12 diviseurs.
Q₂ Déterminer le plus petit entier harmonieux qui admet les six premiers nombres premiers 2,3,5,7,11,13 comme facteurs premiers avec d'éventuelles multiplicités.
Q₃ Déterminer les entiers harmonieux dont les harmonies sont respectivement égales à 6,7,8,9,10 et 11.
Q₄ Démontrer qu'il existe deux entiers harmonieux qui ont la même harmonie égale à 44.
Solution proposée par Bernard Vignes Note liminaire
Soit d
ile i
èmediviseur de la liste des k diviseurs de l'entier n classés par ordre croissant.
On a d₁ = 1, d
k= n et d
i.d
k-i= n.
La moyenne harmonique des diviseurs de n est donnée par la formule: H(n) =
1 2 i k
k
1 1 1 1
... ...
d d d d .
Or
1 2 i k
1 1 1 1
n( ... ... )
d d d d = d
k+ d
k-1+....+1 = σ(n) où σ(n) désigne la somme des diviseurs de n qui est donnée par la formule :
On en déduit: H(n) = kn σ(n)
Dans la suite du problème on s'intéresse donc aux entiers n tels que kn
σ(n) est un entier.
Un programme informatique simple permet d'obtenir en page 2 une liste (non exhaustive) d' entiers n harmonieux classés en première colonne par ordre croissant de l'harmonie H(n). En ligne figurent les exposants positifs ou nuls des facteurs premiers obtenus par la factorisation de chacun d'eux. Les trois dernières colonnes donnent l'harmonie H(n), le nombre de diviseurs tau(n) et σ(n).
Gràce à ce tableau on lit directement les résultats suivants:
Q₁: 140 et 496 Q₂: 360360
Q₃: 270,8128,672,1638,6200
Q₄: 332640 et 360360
Annexe
Sub macro20180711() Dim p(40), x(10000000)
p(1) = 2: p(2) = 3: p(3) = 5: p(4) = 7: p(5) = 11: p(6) = 13: p(7) = 17: p(8) = 19: p(9) = 23: p(10) = 29
p(11) = 31: p(12) = 37: p(13) = 41: p(14) = 43: p(15) = 47: p(16) = 53: p(17) = 59: p(18) = 61: p(19) = 67: p(20) = 71 p(21) = 73: p(22) = 79: p(23) = 83: p(24) = 89: p(25) = 97: p(26) = 101: p(27) = 103: p(28) = 107: p(29) = 109: p(30) = 113 p(31) = 127: p(32) = 131: p(33) = 137: p(34) = 139: p(35) = 149: p(36) = 151: p(37) = 157: p(38) = 163: p(39) = 167: p(40) = 173 For i = 1 To 2
For j = i + 1 To 5 For k = j + 1 To 8 For l = k + 1 To 10 For m = l + 1 To 15 For n1 = m + 1 To 31 For a = 0 To 5 For b = 0 To 3 For c = 0 To 2 For d = 0 To 1 For e = 0 To 1 For f = 0 To 1
t = (a + 1) * (b + 1) * (c + 1) * (d + 1) * (e + 1) * (f + 1) n = p(i) ^ a * p(j) ^ b * p(k) ^ c * p(l) ^ d * p(m) ^ e * p(n1) ^ f
s = (p(i) ^ (a + 1) - 1) * (p(j) ^ (b + 1) - 1) * (p(k) ^ (c + 1) - 1) * (p(l) ^ (d + 1) - 1) * (p(m) ^ (e + 1) - 1) * (p(n1) ^ (f + 1) - 1) / ((p(i) - 1) * (p(j) - 1) * (p(k) - 1) * (p(l) - 1) * (p(m) - 1) * (p(n1) - 1))
r = t * n / s
If n > 1 And n < 10000000 Then If r = Int(r) And x(n) = 0 Then x(n) = 1
kk = kk + 1
Range("A" & kk).Value = n Range("B" & kk).Value = p(i) Range("C" & kk).Value = a Range("D" & kk).Value = p(j) Range("E" & kk).Value = b Range("F" & kk).Value = p(k) Range("G" & kk).Value = c Range("H" & kk).Value = p(l) Range("I" & kk).Value = d Range("J" & kk).Value = p(m) Range("K" & kk).Value = e Range("L" & kk).Value = p(n1) Range("M" & kk).Value = f Range("N" & kk).Value = r Range("O" & kk).Value = t Range("P" & kk).Value = s End If
End If Next f Next e Next d Next c Next b Next a Next n1 Next m Next l Next k Next j Next i End Sub