Test de nombre hautement composé
Un nombre hautement composé possède plus de diviseurs positifs que tout entier positif inférieur.
Lancer gratuitement
Ce vérificateur applique cette définition stricte de record à la valeur que vous indiquez, au lieu de simplement décider si elle a beaucoup de facteurs ou si elle est composée. Il renvoie le nombre de diviseurs de l’entier choisi, le meilleur total atteint en dessous et une réponse directe vraie ou fausse. Ces précisions permettent de contrôler la décision dans les cours, l’étude des suites entières, les exercices de programmation et les processus de validation.
Ce que signifie réussir le test
Un nombre est retenu uniquement lorsque son nombre de diviseurs positifs est strictement supérieur à celui de chaque entier positif inférieur. Le mot « strictement » est déterminant. Si une valeur précédente avait déjà atteint le même total, la valeur plus grande n’établit aucun nouveau record et le vérificateur renvoie faux. Le test s’intéresse donc aux détenteurs de records dans la suite du nombre de diviseurs, et non à la distinction courante entre nombres premiers et composés. L’entier positif 1 est inclus : il possède un diviseur positif et aucun entier positif inférieur à battre, ce qui en fait le premier détenteur d’un record selon la définition appliquée ici. La réponse fournit divisor_count pour la valeur transmise et max_smaller_divisor_count pour le meilleur résultat antérieur. La comparaison de ces deux champs explique le booléen sans vous demander de croire une étiquette dépourvue de justification. Cette information est particulièrement utile pour étudier les suites de records, car une factorisation impressionnante peut ne pas suffire si un entier précédent avait déjà égalé ou dépassé le même nombre de diviseurs.
Comment une réponse déterministe est obtenue
L’algorithme construit une table exacte du nombre de diviseurs pour chaque entier positif compris entre 1 et la valeur demandée. Il parcourt chaque diviseur possible et augmente le compteur de chacun de ses multiples, ce qui exprime la même relation que l’affirmation selon laquelle un diviseur partage un nombre sans reste. Lorsque la table est complète, le vérificateur examine toutes les entrées inférieures à la valeur demandée et conserve le plus grand total rencontré. L’entier transmis est hautement composé si, et seulement si, son propre total dépasse ce maximum antérieur. Aucun test probabiliste de primalité, aucune approximation, aucune base distante, aucun choix aléatoire et aucune valeur dépendante de l’horloge n’interviennent. Une entrée identique produit donc le même JSON dans le navigateur et par l’API. L’implémentation accepte les entiers positifs sûrs ainsi que les textes composés uniquement de chiffres. Elle refuse les fractions, les textes non numériques, les valeurs inférieures à un et les entrées qui dépassent la limite déclarée. Cette limite garantit une consommation de mémoire et des boucles arithmétiques prévisibles dans tous les environnements d’exécution.
Comment lire et exploiter les champs renvoyés
Commencez par is_highly_composite, qui porte la décision principale. Lorsque sa valeur est vraie, divisor_count est nécessairement supérieur à max_smaller_divisor_count : l’entrée a donc établi un nouveau record. Lorsque sa valeur est fausse, le maximum précédent est égal ou supérieur au total de l’entrée, qui ne peut alors pas satisfaire la définition même si elle possède de nombreux facteurs. La réponse répète également n, afin que les journaux et les traitements par lots puissent rattacher chaque décision à sa valeur d’origine. Pour un cours sur les suites, transmettez des entiers voisins et observez le maximum rester inchangé jusqu’au prochain record. Dans des tests logiciels, vérifiez le booléen et les deux totaux afin qu’une régression ne se dissimule pas derrière une étiquette vraisemblable. Dans un traitement de données, considérez une erreur d’entrée comme une rupture de contrat et non comme un résultat mathématique : zéro et les entiers négatifs sont hors domaine. Chaque requête API coûte $0.002, tandis que la version du navigateur s’exécute localement. Aucune des deux voies ne consulte une base externe ni ne conserve l’entier transmis.
Cas d’usage
Explorer les suites de records de diviseurs
Testez des entiers positifs successifs et repérez précisément chaque nouveau record du nombre de diviseurs.
Contrôler des exercices de mathématiques
Vérifiez qu’un nombre annoncé comme hautement composé l’est réellement et consultez les totaux qui justifient la décision.
Valider des candidats générés
Ajoutez un contrôle déterministe des records au code qui propose des candidats à partir de factorisations ou de suites entières.
Questions fréquentes
Qu’est-ce qu’un nombre hautement composé ?
C’est un entier positif qui possède strictement plus de diviseurs positifs que tout entier positif inférieur.
Une égalité avec un entier antérieur suffit-elle ?
Non. L’entrée doit dépasser le précédent record du nombre de diviseurs ; l’égaler ne suffit pas.
Le nombre 1 est-il considéré comme hautement composé ?
Oui, selon la définition employée ici. Il a un diviseur et aucun entier positif inférieur ne peut lui disputer ce premier record.
Quelles entrées sont acceptées ?
Indiquez un entier positif compris entre 1 et 1,000,000. Le solveur partagé accepte aussi un texte composé uniquement de chiffres.
Combien coûte une requête API ?
Chaque requête API coûte $0.002. Le même vérificateur déterministe est disponible dans le navigateur.
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/numth/highly-composite-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":12}'const res = await fetch("https://api.kit.forhosting.com/numth/highly-composite-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/highly-composite-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/highly-composite-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/highly-composite-check", 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
{
"n": 12
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.highly_composite_check",
"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_n | 1000000 |
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. |