Nombre de sommes de deux carrés
Le compteur de sommes de deux carrés renvoie r₂(n), le nombre exact de couples ordonnés d’entiers (x, y) qui vérifient x² + y² = n.
Lancer gratuitement
L’ordre et les signes comptent : (1, 2), (2, 1), (-1, 2) et les autres variantes de signes constituent donc des représentations distinctes. Saisissez un entier positif ou nul dans la limite publiée pour obtenir un résultat déterministe issu de sa décomposition en facteurs premiers, sans énumérer tous les couples de coordonnées possibles. Vous pouvez exploiter directement ce résultat dans des calculs ou des contrôles automatisés.
Comprendre le nombre de représentations ordonnées
Ce calculateur répond à une question précise de théorie des nombres : combien de couples d’entiers (x, y) vérifient x² + y² = n ? Le terme ordonnés est essentiel. Si x et y sont différents, leur permutation produit une autre représentation. Les signes sont également comptés séparément dès qu’une coordonnée n’est pas nulle. Ainsi, un point géométrique situé dans un quadrant peut correspondre à plusieurs points signés autour d’un cercle, tous pris en compte par le calculateur. Les points des axes sont aussi inclus : un carré parfait admet donc des représentations comme (a, 0), (-a, 0), (0, a) et (0, -a). La valeur particulière n = 0 possède une seule représentation, (0, 0). Le champ r_two respecte la notation usuelle r₂(n). Il fournit un nombre, et non une liste de couples, ce qui reste pratique lorsque n possède de nombreuses représentations. La valeur saisie doit être un entier positif ou nul. Les décimaux, entiers non sûrs, nombres négatifs et valeurs supérieures à la borne déclarée sont rejetés sans arrondi ni interprétation implicite.
Méthode de calcul de r₂(n)
L’algorithme factorise n puis applique le théorème classique de comptage des sommes de deux carrés. Pour n strictement positif, r₂(n) vaut quatre fois la différence entre le nombre de diviseurs congrus à 1 modulo 4 et celui des diviseurs congrus à 3 modulo 4. Une forme équivalente fondée sur la factorisation est plus rapide : si un nombre premier congru à 3 modulo 4 apparaît avec un exposant impair, le résultat est nul. Sinon, il faut multiplier un plus l’exposant de chaque facteur premier congru à 1 modulo 4, puis multiplier le produit obtenu par quatre. Les puissances de 2 ne modifient pas ce produit. Prenons n = 65 = 5 × 13. Les deux nombres premiers valent 1 modulo 4 et ont chacun l’exposant un, donc r₂(65) = 4 × 2 × 2 = 16. L’implémentation n’effectue que des divisions entières déterministes : elle ne parcourt aucune grille, ne contacte aucun service distant et n’emploie aucun test probabiliste de primalité. La borne déclarée limite le travail de factorisation et garantit des calculs entiers exacts.
Bien exploiter le résultat
Utilisez r_two lorsque vous avez besoin du décompte complet, signé et ordonné, employé dans les formules arithmétiques classiques, les problèmes de points de réseau ou les coefficients de séries thêta. Ne le confondez pas avec le nombre de décompositions essentiellement différentes en deux carrés positifs ou nuls. Si seules les combinaisons vérifiant 0 ≤ x ≤ y vous intéressent, vous devez traiter la symétrie séparément : un couple de coordonnées distinctes et non nulles produit huit représentations ordonnées signées, un couple situé sur un axe en produit quatre, et deux coordonnées égales non nulles en produisent quatre. Ces tailles d’orbite expliquent pourquoi les valeurs positives de r₂(n) sont généralement des multiples de quatre. Le cas zéro fait exception puisque seule l’origine convient. La capacité renvoie normalement zéro lorsqu’aucune représentation n’existe ; il ne s’agit pas d’une erreur de saisie. Pour automatiser le calcul, envoyez l’entier dans le champ n et lisez r_two dans la réponse. Chaque requête API coûte $0.002 ; la version dans le navigateur exécute exactement le même calcul pur.
Cas d’usage
Vérifier un exercice de théorie des nombres
Contrôlez le nombre de représentations ordonnées signées obtenu par factorisation ou par un raisonnement sur les diviseurs.
Compter les points entiers d’un cercle
Déterminez combien de points à coordonnées entières appartiennent à x² + y² = n sans parcourir une grille carrée.
Produire des données de suite arithmétique
Calculez des valeurs exactes de r₂(n) pour des entiers choisis dans des expériences, tests ou séries thêta.
Questions fréquentes
Les couples (x, y) et (y, x) sont-ils comptés séparément ?
Oui. Le résultat porte sur des couples ordonnés : la permutation crée donc un autre couple, sauf si x est égal à y.
Les coordonnées négatives sont-elles incluses ?
Oui. Chaque couple signé d’entiers qui vérifie l’équation est pris en compte.
Quelle est la valeur de r₂(0) ?
Elle vaut 1, car (0, 0) est le seul couple ordonné d’entiers dont la somme des carrés est nulle.
Pourquoi le résultat peut-il être nul ?
Un entier positif n’est pas une somme de deux carrés si un facteur premier congru à 3 modulo 4 possède un exposant impair.
Le calculateur renvoie-t-il les couples eux-mêmes ?
Non. Il renvoie uniquement le nombre exact r_two, par factorisation plutôt que par énumération des coordonnées.
Quel est le prix d’une requête API ?
Chaque requête coûte $0.002. Le calcul est également 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/sum-two-squares-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":65}'const res = await fetch("https://api.kit.forhosting.com/numth/sum-two-squares-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 65
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/sum-two-squares-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 65
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/sum-two-squares-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":65}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":65}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/sum-two-squares-count", 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": 65
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.sum_two_squares_count",
"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 | 1000000000000 |
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. |