Maison  >  Article  >  développement back-end  >  Tutoriel PHP et GMP : Comment calculer le plus grand diviseur commun et le plus petit commun multiple de grands nombres

Tutoriel PHP et GMP : Comment calculer le plus grand diviseur commun et le plus petit commun multiple de grands nombres

WBOY
WBOYoriginal
2023-07-28 17:09:171439parcourir

Tutoriel PHP et GMP : Comment calculer le plus grand commun diviseur et le plus petit commun multiple de grands nombres

Introduction :
En programmation, nous devons souvent nous occuper du calcul de grands nombres. Cependant, en raison de la plage de représentation limitée des entiers, l’utilisation de types entiers traditionnels entraînera des problèmes de débordement lorsqu’il s’agira de grands nombres. Pour résoudre ce problème, PHP fournit la bibliothèque d'extension GMP (GNU Multiple Precision), qui peut gérer des entiers arbitrairement grands. Ce didacticiel explique comment utiliser l'extension GMP pour calculer le plus grand commun diviseur et le plus petit commun multiple de grands nombres, ainsi que des exemples de code.

1. Installez l'extension GMP
Pour utiliser l'extension GMP, vous devez d'abord vous assurer que PHP a installé l'extension GMP. Vous pouvez vérifier si PHP a installé l'extension GMP via la fonction phpinfo(). S'il n'est pas installé, vous pouvez l'installer en suivant les étapes suivantes :

  1. Téléchargez l'extension GMP adaptée à votre système sur le site officiel de PHP (https://www.php.net/manual/en/gmp.installation. php);
  2. Décompressez le fichier téléchargé ;
  3. Recherchez le répertoire gmp dans le répertoire ext du code source PHP et copiez le fichier décompressé dans le répertoire
  4. Exécutez la commande suivante dans le répertoire racine du code source PHP pour compiler ; et installez l'extension GMP :
    $ ./configure --with-gmp
    $ make
    $ sudo make install
  5. Ajoutez la ligne suivante à la section de configuration du module d'extension dans le fichier de configuration php.ini :
    extension=gmp.so
  6. Redémarrez PHP.

2. Calculez le plus grand diviseur commun
Le plus grand diviseur commun (PGCD) fait référence au plus grand nombre parmi les diviseurs communs de deux entiers ou plus.

function calculateGCD($a, $b) {
    $a = gmp_init($a);
    $b = gmp_init($b);
    
    return gmp_strval(gmp_gcd($a, $b));
}

$a = "123456789012345678901234567890";
$b = "987654321098765432109876543210";
$gcd = calculateGCD($a, $b);

echo "最大公约数:" . $gcd;

Code explicatif :

  1. Utilisez la fonction gmp_init() pour convertir le nombre d'entrée en un entier de type GMP ;
  2. Utilisez la fonction gmp_gcd() pour calculer le plus grand diviseur commun ;
  3. Utilisez la fonction gmp_strval() pour convertir le résultat du calcul en un type de chaîne de caractères ;
  4. Afficher le plus grand diviseur commun.

3. Calculer le plus petit commun multiple
Le moins commun multiple (Least Common Multiple, en abrégé LCM) fait référence au plus petit nombre qui peut être divisé par deux entiers ou plus.

function calculateLCM($a, $b) {
    $a = gmp_init($a);
    $b = gmp_init($b);
    
    $gcd = gmp_gcd($a, $b);
    
    return gmp_strval(gmp_mul(gmp_div($a, $gcd), $b));
}

$a = "123456789012345678901234567890";
$b = "987654321098765432109876543210";
$lcm = calculateLCM($a, $b);

echo "最小公倍数:" . $lcm;

Code explicatif :

  1. Utilisez la fonction gmp_init() pour convertir le nombre d'entrée en un entier de type GMP ;
  2. Utilisez la fonction gmp_gcd() pour calculer le plus grand diviseur commun ;
  3. Utilisez la fonction gmp_div() pour calculer la valeur ; de deux nombres saisis Quotient ;
  4. Utilisez la fonction gmp_mul() pour calculer le produit de deux nombres ;
  5. Utilisez la fonction gmp_strval() pour convertir le résultat du calcul en un type de chaîne ;
  6. Conclusion :
En utilisant l'extension GMP, nous pouvons facilement calculer le plus grand commun diviseur et le plus petit commun multiple de grands nombres. Ce didacticiel donne des exemples de codes de calcul pour référence et utilisation par les lecteurs. Dans la programmation réelle, il vous suffit de prêter attention à la conversion des paramètres d'entrée et à la conversion des résultats. Grâce à l'extension GMP, vous pouvez gérer des entiers arbitrairement grands, évitant ainsi le problème de débordement des types entiers traditionnels.


J'espère que ce tutoriel pourra aider les lecteurs à gérer plus facilement et plus rapidement les calculs de grands nombres. Merci d'avoir lu!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn