Retour à l'accueil

Regroupement des nombres naturels en n/2 groupes copremiers deux à deux

L'article décrit l'algorithme pour diviser les nombres naturels 1..n en n/2 groupes avec éléments copremiers deux à deux à l'intérieur. Utilise formule pour les composés impairs et propriétés des 4k±1. Code Python et justification fournis.

Comment regrouper les nombres 1..n en paires copremières deux à deux
Advertisement 728x90

Regroupement des nombres naturels en paires de nombres premiers entre eux

Diviser la séquence {1, 2, 3, ..., n} en n/2 groupes, où tous les nombres de chaque groupe sont premiers entre eux, est réalisé grâce à un algorithme simple. Les nombres premiers et 1 sont placés dans le premier groupe. Les nombres pairs >2 forment les éléments de départ des groupes restants. Les nombres composés impairs sont distribués à l'aide de la formule pos_{x_i} = ⌊x_i/4 + 0,5⌋. Cela garantit que le pgcd de chaque nombre impair avec le leader pair du groupe est égal à 1.

Logique de distribution

L'algorithme repose sur les propriétés des nombres composés impairs : ils prennent tous la forme 4k ± 1 pour un certain k. Ici, k correspond au numéro du groupe. Pour le leader pair 2k, pgcd(2k, 4k ± 1) = 1, puisque 4k ± 1 ≡ ±1 (mod 2k).

Le premier groupe contient :

Google AdInline article slot
  • 1
  • Tous les nombres premiers

Les groupes restants (k ≥ 2) :

  • Première position : nombre pair 2k
  • Deuxième position (facultative) : nombres composés impairs x, où pos_x = k

Certains groupes peuvent contenir 0 ou 2 nombres impairs (exemples : k=3,7 — vide ; k=14,16 — deux chacun).

Exemple pour n=24

Un tableau illustre la distribution :

Google AdInline article slot

| Groupe 1 | 1, 2, 3, 5, 7, 11, 13, 17, 19, 23 |

| Groupe 2 | 4, 9, 15, 21 |

| Groupe 3 | 6 |

Google AdInline article slot

| Groupe 4 | 8, 25? (pour n=24 : 8) |

| ... | ... |

La vérification de la coprimalité au sein des groupes est confirmée par les propriétés : les nombres premiers sont premiers entre eux deux à deux, pgcd(2k, 4k±1)=1.

Justification mathématique

  • Nombres premiers : Deux nombres premiers p, q (p ≠ q) ont pgcd(p,q)=1.
  • Leaders pairs : 2k avec k≥2 est impair, mais 2k est pair.
  • Composés impairs : x = 4k ±1, pgcd(2k, x) = pgcd(2k, ±1 mod 2k) =1.
  • Entre impairs dans un groupe : Les paires possibles (rares) sont également premières entre elles par construction, car elles sont distribuées modulo.

Cela découle indirectement du théorème de Dirichlet sur les nombres premiers dans les progressions arithmétiques, mais directement de la forme des nombres impairs.

Implémentation en Python

Pour automatiser le découpage :

def group_naturals(n):
    primes = [1]  # 1 + nombres premiers
    composites_odd = []
    evens = []
    
    for i in range(2, n+1):
        if i % 2 == 0:
            evens.append(i)
        elif is_prime(i):
            primes.append(i)
        else:
            composites_odd.append(i)
    
    groups = [primes]
    pos = {}
    for x in composites_odd:
        k = int(x / 4 + 0.5)
        if k not in pos:
            pos[k] = []
        pos[k].append(x)
    
    for k in range(2, n//2 +1):
        group = [2*k]
        if k in pos:
            group.extend(sorted(pos[k]))
        groups.append(group)
    
    return groups[:n//2]  # tronquer les extras

def is_prime(num):
    if num < 2:
        return False
    for i in range(2, int(num**0.5)+1):
        if num % i == 0:
            return False
    return True

Le code génère les groupes pour un n donné, en vérifiant les propriétés.

Points clés

  • Tous les groupes contiennent uniquement des nombres premiers entre eux.
  • Le nombre de groupes est exactement n/2 pour tout n naturel.
  • Les composés impairs sont distribués par pos = ⌊x/4 + 0,5⌋.
  • Justification : x=4k±1 ⇒ pgcd(2k, x)=1.
  • Premier groupe : 1 et tous les nombres premiers.

— Editorial Team

Advertisement 728x90

Lire ensuite