Position actuelle: Accueil> Derniers articles> Comment calculer le plus grand diviseur commun et le multiple commun minimum de grands nombres en utilisant des extensions PHP et GMP

Comment calculer le plus grand diviseur commun et le multiple commun minimum de grands nombres en utilisant des extensions PHP et GMP

M66 2025-06-18

introduction:

En programmation, la gestion des calculs de grands nombres est une exigence commune. Cependant, en raison de la gamme de représentation limitée des types d'entiers traditionnels, les problèmes de débordement sont susceptibles de se produire lorsqu'ils traitent de grands nombres. L'extension GMP (GNU multiple de précision) de PHP fournit une solution qui peut gérer n'importe quel grand entier. Dans ce tutoriel, nous montrerons comment calculer le plus grand diviseur commun (GCD) et multiple commun minimum (LCM) de grands nombres à l'aide d'extensions GMP, et vous aider à implémenter facilement ces calculs avec des exemples de code.

1. Installez l'extension GMP

Pour utiliser les extensions GMP, assurez-vous d'abord que PHP a installé l'extension GMP. Vous pouvez vérifier si PHP a installé GMP en exécutant la fonction phpinfo (). Si ce n'est pas installé, vous pouvez suivre les étapes ci-dessous:

  1. Téléchargez les extensions GMP qui conviennent à votre système.
  2. Décompressez le fichier téléchargé.
  3. Copiez le fichier dézippé dans le répertoire GMP sous le répertoire EXT de code source PHP.
  4. Exécutez la commande suivante dans le répertoire racine source PHP pour compiler et installer l'extension GMP:
  5.  $ ./configure - avec
     $ faire
     $ sudo faire l'installation
  6. Ajouter un fichier de configuration php.ini:
     extension = gmp.so
  7. Redémarrer PHP.

2. Calculez le plus grand diviseur commun

Le plus grand diviseur commun (GCD) fait référence au plus grand nombre du diviseur commun de deux ou plusieurs entiers. La méthode de calcul du plus grand diviseur commun à l'aide de l'extension GMP est la suivante:

Fonction CalculeGcd ($ a, $ b) {
    $ a = gmp_init ($ a);
    $ b = gmp_init ($ b);
    return gmp_strval (gmp_gcd ($ a, $ b));
}
$ a = "123456789012345678901234567890";
$ b = "987654321098765432109876543210";
$ gcd = calculgcd ($ a, $ b);
écho "Le plus grand diviseur commun:". $ gcd;

Explication du code:

  1. Utilisez la fonction GMP_INIT () pour convertir le numéro 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 de calcul en un type de chaîne;
  4. Sortie le plus grand diviseur commun.

3. Calculez le multiple commun minimum

Le multiple le moins commun (LCM) fait référence au plus petit entier positif qui peut être divisible par deux ou plusieurs entiers. Avec l'exemple de code suivant, vous pouvez calculer le multiple commun minimum de deux grands nombres:

Fonction 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 "Minimum commun multiple:". $ LCM;

Explication du code:

  1. Utilisez la fonction GMP_INIT () pour convertir le numéro 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 le quotient de deux nombres;
  4. Utilisez la fonction GMP_MUL () pour calculer le produit de deux nombres;
  5. Utilisez la fonction GMP_STRVAL () pour convertir le résultat de calcul en un type de chaîne;
  6. Sortir le multiple commun minimum.

en conclusion:

En utilisant des extensions GMP, vous pouvez facilement calculer le plus grand diviseur commun et le multiple le moins commun de grands nombres. Faites simplement attention à la conversion des formats d'entrée et de sortie, l'extension GMP peut vous aider à gérer les entiers de toute taille et à éviter le problème des types d'entiers traditionnels. J'espère que ce tutoriel vous aidera à effectuer des nombres plus efficaces.