Fattorizzazione prima di n!
10! si scompone in 2⁸ × 3⁴ × 5² × 7, e lei ottiene questo elenco senza mai calcolare il prodotto intero. Inserisca n tra 0 e 100000 e veda ogni primo fino a n con il suo esponente, ricavato con la formula di Legendre. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
La fattorizzazione prima del fattoriale di n è un risultato classico della teoria dei numeri: ogni primo al più n compare in n!, e la sua potenza esatta è data dalla formula di Legendre senza mai scrivere il prodotto enorme 1×2×…×n. Studenti, programmatori di gare e apprendisti di crittografia hanno bisogno di tali esponenti per coefficienti binomiali, valutazioni p-adiche e controlli di divisibilità fattoriale.
Cosa calcola la formula di Legendre e perché supera l’espansione di n!
Per un intero non negativo n, n! è il prodotto di tutti gli interi positivi fino a n (con le convenzioni 0! = 1! = 1). Scrivere quel prodotto per intero diventa impraticabile quando n raggiunge alcune decine, perché il valore decimale di n!
cresce più in fretta di quanto possa contenere qualsiasi tipo intero a larghezza fissa. Eppure la fattorizzazione prima di n! è completamente determinata da una forma chiusa breve: se p è primo e p ≤ n, l’esponente di p in n!
è uguale alla somma dall’aspetto infinito ma finita floor(n/p) + floor(n/p²) + floor(n/p³) + …, che si ferma non appena p^k supera n. Quella identità è la formula di Legendre (detta anche formula di de Polignac). Conta quanti multipli di p, di p², di p³ e così via contribuiscono fattori di p quando si espande il prodotto 1·2·…·n.
= 2^8 × 3^4 × 5^2 × 7. Nessuna casualità, nessun campionamento e nessun fattoriale a multiprecisione: solo divisione intera e un elenco di primi.
Dove le fattorizzazioni fattoriali compaiono in pratica
Le valutazioni p-adiche dei fattoriali compaiono ogni volta che si semplificano coefficienti binomiali, si calcola la massima potenza di un primo che divide un multinomiale o si dimostra che un fattoriale è divisibile per un dato intero. I problemi di programmazione competitiva chiedono spesso l’esponente di p in n! o la fattorizzazione completa di n!
sotto un limite modesto di n; la formula di Legendre è la chiave di risposta standard. Nell’insegnamento, mostrare che 25! è divisibile per 5 esattamente floor(25/5)+floor(25/25) = 5+1 = 6 volte rende concreto l’argomento di conteggio senza un muro di moltiplicazioni.
I taccuini di crittografia e teoria dei numeri a volte necessitano della firma prima di n! come mattoncino per esempi su numeri smooth o primoriali.
Casi d'uso
Controllare le valutazioni p-adiche in compiti e gare
Studenti e concorrenti possono verificare l’esponente di ogni primo in n! prima di consegnare dimostrazioni o soluzioni di programmazione che dipendono dalla formula di Legendre.
Costruire demo di numeri smooth e fattoriali
Taccuini didattici e strumenti ricreativi di teoria dei numeri possono mostrare la firma prima di n! senza espandere il valore fattoriale completo.
Domande frequenti
Qual è la fattorizzazione prima del fattoriale di n?
È il prodotto dei primi p ≤ n ciascuno elevato alla potenza data dalla formula di Legendre: floor(n/p) + floor(n/p²) + … finché la potenza non supera n.
Come evita questo calcolatore di calcolare n! direttamente?
Elenca i primi fino a n con un setaccio, poi applica la somma di Legendre per ogni primo. L’enorme valore decimale di n! non viene mai costruito.
Cosa succede se n è negativo?
Il fattoriale è definito qui solo per interi non negativi entro l’intervallo pubblicato.
Lo strumento di fattorizzazione prima del fattoriale è gratuito?
Lo strumento del browser è gratuito e gira in locale.
Cosa restituiscono 0! e 1!?
Entrambi valgono 1, quindi l’array factors della risposta è vuoto: non ci sono fattori primi da elencare.
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/factorial-prime-factors \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":10}'const res = await fetch("https://api.kit.forhosting.com/numth/factorial-prime-factors", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/factorial-prime-factors",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/factorial-prime-factors", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/factorial-prime-factors", 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": 10
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.factorial_prime_factors",
"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 | 100000 |
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
Questa capacità setaccia i primi fino a n, somma floor(n/p) + floor(n/p²) + … per ogni primo e restituisce un elenco ordinato di coppie primo/esponente — deterministico, offline e gratuito da provare nel browser prima di collegare il percorso API a pipeline di compiti o correttori automatici.
Cosa calcola la formula di Legendre e perché supera l’espansione di n!
Ad esempio, con n = 10 i primi al più 10 sono 2, 3, 5 e 7; l’esponente di 2 è floor(10/2)+floor(10/4)+floor(10/8) = 5+2+1 = 8, quello di 3 è 3+1 = 4, di 5 è 2 e di 7 è 1, quindi 10!
Come chiamare l’API e cosa contiene la risposta
In caso di successo la risposta ripete n come accepted e restituisce factors come elenco crescente di oggetti ciascuno con prime e exponent. Per n uguale a 0 o 1 l’elenco dei fattori è vuoto perché entrambi i fattoriali valgono 1 e 1 non ha fattori primi. La usi da solutori di gare, demo in aula, script di valutazione di coefficienti binomiali o qualsiasi flusso che necessiti di una fattorizzazione riproducibile di n! senza installare un sistema di algebra computazionale. Invii un corpo JSON con un unico campo obbligatorio n — un numero intero almeno 0 e al più centomila (100000). Gli alias number e value sono accettati per lo stesso campo così moduli browser e script condividono un contratto. I fallimenti di validazione — n assente, non intero, valore frazionario, n negativo o sopra il massimo pubblicato — restituiscono invalid_input e non vengono mai addebitati. Il prezzo è un $0.002 fisso per richiesta riuscita (voce unitaria a prezzo marginale zero).
Dove le fattorizzazioni fattoriali compaiono in pratica
Mantenga n entro il limite pubblicato affinché il setaccio e i cicli di Legendre restino interattivi sul Worker di bordo; per n enormi servirebbe uno stack multiprecisione specializzato, non questa capacità leggera di parse. Gli input negativi sono rifiutati perché il fattoriale reale non è definito per interi negativi in questo contratto di API.
Casi di integrazione
Semplificare i coefficienti binomiali dalle fattorizzazioni
Gli script che cancellano i primi in C(n,k) possono ottenere la fattorizzazione di n!, k! e (n−k)! da questo endpoint e sottrarre gli esponenti in modo deterministico.