Calcolatore di idempotenti modulo n
Modulo 12 ci sono quattro residui che non cambiano se elevati al quadrato: 0, 1, 4 e 9. Inserisca un modulo fino a mille miliardi per ottenere l’elenco completo e ordinato, con le potenze di primi che spiegano quanti sono. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- N
- 12
- Idempotenti
- 0, 1, 4, 9
- Quantità
- 4
- Fattori di potenze di primi
- 4, 3
Un idempotente modulo n è un residuo che non cambia quando viene moltiplicato per sé stesso: il quadrato di x è congruente a x modulo n. Questo calcolatore restituisce l’elenco completo e ordinato da zero a n meno uno, non soltanto un conteggio o un esempio. Scompone il modulo in potenze di primi coprime a coppie e applica il teorema cinese del resto per costruire esattamente ogni risposta. L’output include anche tali fattori, affinché Lei possa controllare, spiegare, verificare o riutilizzare facilmente il risultato in altri calcoli modulari.
Significato di residuo idempotente
La congruenza caratteristica è x² ≡ x (mod n), equivalente ad affermare che n divide x(x − 1). Zero e uno sono sempre soluzioni, perché elevarli al quadrato non ne cambia la classe residua. Un modulo composto può avere altre soluzioni: potenze prime diverse di n possono dividere separatamente i fattori consecutivi x e x − 1.
Modulo dodici, per esempio, l’insieme completo è zero, uno, quattro e nove. Quattro funziona perché sedici differisce da quattro di dodici; nove funziona perché ottantuno differisce da nove di settantadue. L’array idempotents contiene solo rappresentanti canonici compresi tra zero e n meno uno, senza duplicati e in ordine numerico. count ne indica il numero.
L’output è quindi adatto quando Lei desidera tutte le soluzioni e non la sola verifica di un candidato.
Costruzione dell’elenco completo
L’algoritmo scompone dapprima n in potenze prime massimali. Questi fattori sono coprimi a coppie e il loro prodotto è n. Su una potenza prima, x² ≡ x possiede esattamente due classi: zero e uno.
Il teorema cinese del resto garantisce che scegliere indipendentemente zero o uno per ogni fattore determina una sola classe modulo n. Se n ha k primi distinti, esistono quindi 2^k idempotenti. Il calcolatore non scandisce tutti gli interi fino a n meno uno.
Per ogni potenza q forma n/q, ne calcola l’inverso esatto modulo q, combina le basi CRT secondo tutti gli schemi binari, riduce modulo n e ordina i risultati. La fattorizzazione usa divisioni di prova deterministiche; prodotti e inversioni CRT usano BigInt, evitando arrotondamenti. Non intervengono rete, orologio, casualità o cache mutabile: lo stesso input produce sempre gli stessi fattori e lo stesso elenco ordinato.
Casi d'uso
Insegnare il teorema cinese del resto
Mostri come scelte indipendenti di zero o uno sulle potenze prime diventano residui concreti modulo un intero composto.
Verificare codice di aritmetica modulare
Generi un riferimento esatto e ordinato per collaudare implementazioni di anelli, congruenze o classi residue.
Esplorare la struttura degli anelli finiti
Elenchi gli elementi che agiscono come proiezioni rispetto alla moltiplicazione nell’anello degli interi modulo n.
Domande frequenti
Zero e uno sono sempre inclusi?
Sì. Sono sempre idempotenti; quando n vale uno, entrambi i nomi rappresentano l’unico residuo canonico zero.
Quanti idempotenti esistono?
Per n maggiore di uno con k fattori primi distinti, ne esistono esattamente 2^k. Il modulo uno ha una sola classe.
Perché vengono restituite le potenze prime?
Mostrano i componenti coprimi usati dal teorema cinese del resto e spiegano il numero delle soluzioni.
Il calcolatore prova ogni residuo?
No. Scompone n e costruisce direttamente l’insieme completo mediante le basi CRT.
Quali sono gli idempotenti modulo 12?
Sono 0, 1, 4 e 9. Per esempio, 4 al quadrato è 16, che diviso per 12 dà resto 4, e 9 al quadrato è 81, che dà resto 9. Poiché 12 ha due fattori primi distinti, gli idempotenti sono quattro.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/numth/idempotents-mod-n \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":12}'const res = await fetch("https://api.kit.forhosting.com/numth/idempotents-mod-n", {
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/idempotents-mod-n",
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/idempotents-mod-n", 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/idempotents-mod-n", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"n": 12
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.idempotents_mod_n",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_n | 1000000000000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Significato di residuo idempotente
Con n uguale a uno esiste una sola classe, rappresentata da zero, ed è idempotente. prime_power_factors espone la struttura: dodici è quattro per tre, non due per due per tre.
Costruzione dell’elenco completo
Il limite di mille miliardi rende prevedibile la latenza e mantiene sicuri gli interi JSON.
Invio del modulo e utilizzo della risposta
Anche i valori superiori al limite pubblicato di mille miliardi vengono respinti. Come controllo, count deve essere due elevato al numero di primi distinti; n uguale a uno è il caso speciale con fattori vuoti e conteggio uno. Lei può verificare ogni x controllando che il resto non negativo di x per x meno x modulo n sia zero. Il risultato può alimentare routine per anelli finiti, test di librerie, esercizi sul teorema cinese o enumerazioni modulari. Invii n come intero JSON positivo oppure come semplice stringa decimale. È accettato anche l’alias modulus nei moduli che preferiscono un nome descrittivo. La stringa può iniziare con un segno più; frazioni, notazione esponenziale, prefissi esadecimali, spazi, negativi, zero, valori mancanti, array e oggetti errati generano invalid_input. Dopo una risposta valida, idempotents contiene l’insieme crescente completo, count ne indica la dimensione e prime_power_factors mostra la scomposizione coprima. Ogni richiesta API riuscita costa $0.002; lo strumento gratuito nel browser usa la stessa funzione pura.
Domande tecniche
Quali input vengono rifiutati?
Valori mancanti, non interi o minori di uno, stringhe decimali malformate e moduli oltre il limite pubblicato restituiscono invalid_input.