Calculateur de PGCD PPCM
Saisissez 12 et 18 pour obtenir un PGCD de 6 et un PPCM de 36, ou entrez jusqu'à 20 nombres d'un coup. Pratique pour simplifier des fractions, trouver un dénominateur commun et faire coïncider des cycles répétitifs. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Nombres
- 12, 18
- Plus grand diviseur commun
- 6
- Plus petit multiple commun
- 36
Calcule le plus grand commun diviseur et le plus petit commun multiple d'un tableau de 2 à 20 entiers, renvoyant les entrées normalisées à côté du gcd et du lcm.
Comment le PGCD et le PPCM sont calculés
Le plus grand commun diviseur de deux valeurs provient de l'algorithme d'Euclide — en remplaçant à répétition (a, b) par (b, a mod b) jusqu'à ce que b soit nul — et le PGCD de tout le tableau est cette opération appliquée de gauche à droite sur chaque élément.
Le plus petit commun multiple d'une paire est calculé comme abs((a / g) * b) où g est leur PGCD, en divisant avant de multiplier pour garder la valeur intermédiaire petite, et le PPCM du tableau est de même replié sur tous les éléments. Si un élément est nul, le PPCM est nul, et un tableau entièrement nul est rejeté car gcd(0,0) est indéfini. La réponse renvoie numbers (les entrées normalisées), gcd et lcm, de sorte que l'exemple [12, 18] donne un gcd de 6 et un lcm de 36.
Normalisation, limites et entiers sûrs
Chaque élément est d'abord contraint avec Math.trunc et Math.abs, de sorte que les signes et les parties fractionnaires sont écartés : -12,9 devient 12 avant tout calcul, et les valeurs normalisées sont celles qui apparaissent dans le tableau numbers renvoyé. Le tableau doit contenir entre 2 et 20 éléments, chaque élément doit être un nombre fini, et aucune valeur absolue ne peut dépasser 1e15.
Une arithmétique déterministe réutilisable
Le PGCD et le PPCM sous-tendent des tâches quotidiennes : réduire des fractions à leur plus simple expression, trouver un dénominateur commun, aligner des horaires récurrents ou des dimensions de pavage, et simplifier des ratios. Passer plus de deux nombres est entièrement pris en charge — le repli gère jusqu'à 20 en un seul appel — de sorte que vous pouvez réduire tout un ensemble d'un coup plutôt que d'enchaîner des requêtes deux à deux.
Cas d’usage
Réduction de fractions et de ratios
Réduisez des fractions ou des ratios à leur plus simple expression en divisant numérateur et dénominateur par leur gcd.
Alignement d'horaires
Trouvez quand des cycles récurrents coïncident en prenant le lcm de leurs périodes sur un maximum de 20 valeurs.
Questions fréquentes
Qu'advient-il des négatifs et des décimaux ?
Chaque valeur est tronquée et rendue absolue (Math.trunc puis Math.abs), de sorte que -12,9 devient 12 avant tout calcul.
Combien de nombres peut-on saisir à la fois ?
De 2 à 20. Le PGCD et le PPCM sont calculés sur toute la liste en une seule passe, ce qui permet de réduire un ensemble entier au lieu d'enchaîner des paires à la main.
Que se passe-t-il si l'un des nombres vaut zéro ?
Le PPCM devient zéro, car zéro est un multiple de tout nombre. Une liste composée uniquement de zéros est refusée, puisque leur plus grand commun diviseur n'est pas défini.
Comment utiliser le PPCM pour savoir quand deux cycles coïncident ?
Saisissez la durée de chaque cycle répétitif, par exemple en jours. Le PPCM indique le premier moment où tous coïncident de nouveau, et cela fonctionne jusqu'à 20 cycles à la fois.
Comment simplifier une fraction avec le PGCD ?
Saisissez le numérateur et le dénominateur, puis divisez-les tous deux par le PGCD obtenu. Vous obtenez la même fraction sous forme irréductible, et la méthode vaut aussi pour simplifier un rapport.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/dev/gcd-lcm \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"numbers":[12,18]}'const res = await fetch("https://api.kit.forhosting.com/dev/gcd-lcm", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"numbers": [
12,
18
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/gcd-lcm",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"numbers": [
12,
18
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/gcd-lcm", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"numbers":[12,18]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"numbers":[12,18]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/gcd-lcm", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"numbers": [
12,
18
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.gcd_lcm",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_items | 20 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Comment le PGCD et le PPCM sont calculés
dev.gcd_lcm prend un tableau numbers et le replie deux à deux.
Normalisation, limites et entiers sûrs
Parce que le PPCM croît vite, le résultat est vérifié par rapport à Number.MAX_SAFE_INTEGER et un lcm calculé au-delà de cette plage renvoie une erreur typée invalid_input plutôt qu'un flottant silencieusement erroné. Toute violation — un non-tableau, trop peu ou trop d'éléments, une entrée non finie, une magnitude hors plage ou un ensemble entièrement nul — déclenche invalid_input avec un message nommant le problème, avant ou pendant le repli, de sorte que les appelants obtiennent un échec propre et rattrapable.
Cas d'intégration
Théorie des nombres par lots
Appelez l'API sur de nombreux ensembles d'entiers pour ajouter les colonnes gcd et lcm sans bibliothèque mathématique locale.
Questions techniques
Combien de nombres puis-je passer ?
Entre 2 et 20 entiers par appel ; le gcd et le lcm sont repliés deux à deux sur tout le tableau.
Y a-t-il des limites de taille ?
Aucun élément ne peut dépasser 1e15 en magnitude, et un PPCM au-delà de MAX_SAFE_INTEGER renvoie invalid_input au lieu d'un flottant erroné.
Que se passe-t-il si je passe uniquement des zéros ?
C'est rejeté : gcd(0,0) est indéfini, de sorte qu'un tableau entièrement nul renvoie une erreur typée invalid_input.
Est-ce déterministe et gratuit ?
Oui. Le même tableau donne toujours le même résultat ; le widget de navigateur est gratuit et l'API ne facture que les tâches réussies à partir de $0.002.