Aller au contenu

PGCD de deux entiers

Le cadre

Pour deux entiers strictement positifs n et m, la liste de leurs diviseurs est finie et comporte 1 en commun.

Le Plus Grand Commun Diviseur (PGCD) de n et m est donc bien défini.

PGCD de 12 et 16

  • Les diviseurs de 12 sont : \(1, 2, 3, \mathbf{4}, 6, 12\)
  • Les diviseurs de 16 sont : \(1, 2, \mathbf{4}, 8, 16\)

Le plus grand diviseur commun est 4.

PGCD de n et zéro
  • Les diviseurs de zéro sont tous les entiers, en effet zéro est un multiple de tout entier. (\(0×k = 0\) pour tout \(k\in\mathbb N\))

  • Les diviseurs communs à n et zéro, sont donc tous les diviseurs de n.

Si n > 0, le plus grand diviseur est \(n\), ainsi pgcd(n, 0) est égal à n.

PGCD de zéro et zéro

Les diviseurs de zéro sont tous les entiers, et donc les diviseurs communs à zéro et zéro sont également tous les entiers, sans limite, et sans plus grand.

On étend pourtant la définition avec pgcd(0, 0) égal à 0.

Cela permet aux formules suivantes de rester également valables dans ce cas.

⚠ Ce n'est qu'une convention très utile !

Cas général, simplement

Pour calculer le PGCD, on peut utiliser une propriété mathématique de la fonction pgcd pour deux entiers positifs n et m

  • Si m = 0, alors pgcd(n, m) est égal à n
  • Sinon, pgcd(n, m) est égal au PGCD entre m et le reste de la division de n par m.

Exercice

Coder une fonction récursive pgcd qui prend en paramètre deux entiers garantis positifs.

⚠ le module math est désactivé pour cet exercice.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : /
.128013,59/f78rnb o=ylae%Gpcwgu)vd4613kRméhtsP(S0à2CDi:050B0r0L0q0V0p0M0l0v0p0q0M0M0n010L0V0u010406050M0y0I0I0q0i0o040P0m0p0y0;0m0j050e0{0}0 110_0u04051h1a1k0e1h0_0B0V0A0)0+0-0/0K0V0x0K0p1y0K0L0@050!0k0p0r1t0,0.011x1z1B1z0L1H1J1F0L0i1i0L0K1L1v010f0$0r0j0q0I0r010)140M0u0q0j0/0S1F1?1^1$1N1)1J1,1.0@0a0l0N0i0m0u0m0M0V170j0l0Y1;0i0i0r0v2f1a1}0j1i0e1!2s1X1Z1Y1G0B1 0/1B0j1+2c1F1q1s0*1M2C0V2E0j0m2I1F0u2l1i2q2s2W0`1@2g2K1%2P0i0~0p0@0E2p2!0^2Z1~2$1N2(2*0@0S2.1^2:2q2B012^0q2+040F2|2r0_2 2?0/32340C372~2!303d0@0c3g393i3b310m2)330@0D3n2;2#1u2@3s2_040g3x3a3A3c3C3u040h3G3p3I3r3t340d3g1l2U1a2I2v0B1Z2A3q0v2Q1/1i3Z1j3X2Y1b2/053)0Y2V3P2L010G0@0Y0f3V3H3{0w0@0l413`2%0f0@0u0x0v0B472=3Q0?040O4g3z3{0j0@193;2}3y304j0b3g46422%0@0I4m4v0@0z0W3O4h43450l4N4E3q0M0B0@014U0H1+0A0m0V1K1J270t0T0U2h1K2g0Z0l4D4s384u4Q4S044N4N0q0A2m0l0+1;0j4}0j2f0l4c4e0O0Q0b0l0Q0z0l0J0x330l0R5c4J4n1%4R4M4{4}0v0l4-0L4/562c2e0V0f0M5m305p4_4`4U013n4`4z481N3}045B4y4?3Q4p044:2W5N4K1%0m0@0n0n5T4A1N0I0V0@0Q4P4i0@4I4;0^5M5M5U3{5Q2l0L0y0i4r5Z5}4B04642/065|5,0/5Q0r0%0r5=3{4j5^2W6b5{4O6d3|0@6062692}5!5n2@4b4d4f5_661N4j4l6E6r5W5Y3=6r4w5+5O3c4q6Q5#1N5%040s6U6z6S5X6j1%4j0z3x0e3@0r2s2T6/3Y1r3!2v2y2t0q1I6=0e3Z0_6 0Z0#0%04.