ForHosting KIT · Matematica

Verificatore Euler-Jacobi

Il 561 è uno pseudoprimo di Euler–Jacobi in base 2: la potenza con esponente 280 dà resto 1, come il suo simbolo di Jacobi, anche se 561 è composto. Inserisca un composto dispari e una base per vedere ogni valore del verdetto. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
N
561
A
2
Ottiene
Gcd
1
Simbolo di Jacobi
1
Esponente
280
Resto
1

Uno pseudoprimo di Euler–Jacobi rispetto a una base data è un intero composto dispari che obbedisce al criterio di Euler come se fosse primo. Per una base a coprima, ciò significa che a elevato a (n meno uno) su due è congruo al simbolo di Jacobi di a su n, modulo n. Ogni primo dispari che non divide a soddisfa la stessa congruenza, così i composti che passano ancora sono i fallimenti interessanti di un test in stile Solovay–Strassen. Questo verificatore risponde esattamente a quella domanda: dati n composto dispari e la base a, decidere se n è uno pseudoprimo di Euler–Jacobi in quella base. La risposta riporta il gcd, il simbolo di Jacobi, la potenza modulare, se la congruenza vale e un booleano vero solo quando la definizione completa è soddisfatta.

Che cos'è uno pseudoprimo di Euler–Jacobi e come differisce dai test di Fermat e di Euler

Il criterio di Euler afferma che se p è un primo dispari e a non è divisibile per p, allora a elevato a (p meno uno) su due è congruo al simbolo di Legendre di a su p, modulo p. Il simbolo di Jacobi (a/n) estende quel carattere quadratico dai primi dispari a qualsiasi intero positivo dispari n, perciò è tentante scrivere la stessa congruenza con n al posto di p. Quando n è un primo dispari i due simboli coincidono e la congruenza è un teorema.

Quando n è dispari e composto, la congruenza può ancora valere per alcune basi sebbene n non sia primo. Quegli n si chiamano pseudoprimi di Euler–Jacobi in base a, purché gcd(a, n) sia uno. La condizione è strettamente più forte del test di Fermat (a elevato a n meno uno congruo a uno modulo n) e anche più forte del test di Euler debole, che chiede solo che la potenza modulare sia più uno o meno uno.

L'esempio classico è trecentoquarantuno in base due: è uno pseudoprimo di Fermat, due elevato a centosettanta vale uno modulo trecentoquarantuno, ma il simbolo di Jacobi (2/341) è meno uno, quindi la congruenza di Euler–Jacobi fallisce. Cinquecentosessantuno, il più piccolo numero di Carmichael, soddisfa la congruenza in base due ed è quindi uno pseudoprimo di Euler–Jacobi in quella base. Novantuno in base dieci è un altro esempio d'aula che questo verificatore conferma.

Contratto di ingresso, campi della risposta e comportamento in errore

Se n è minore di nove, pari o primo, il gestore rifiuta la richiesta: gli pseudoprimi di Euler–Jacobi sono composti dispari per definizione, e trattare un primo come uno pseudoprimo fallito insegnerebbe la lezione sbagliata. Tali fallimenti di convalida non vengono addebitati. La stringa criterion ribadisce a^((n-1)/2) ≡ (a/n) (mod n) perché una pagina o un taccuino mostri la definizione accanto al verdetto.

Quando gcd è maggiore di uno, Jacobi vale zero e la coppia non è di Euler–Jacobi anche se qualche potenza accidentale si annulla. Esempio: n uguale a cinquecentosessantuno e a uguale a due produce jacobi uno, remainder uno e un flag vero; n uguale a trecentoquarantuno e a uguale a due produce jacobi meno uno, remainder uno e un flag falso. Tutta l'aritmetica è BigInt esatto; non c'è virgola mobile né testimone casuale.

Dove un verificatore di pseudoprimi di Euler–Jacobi merita il suo posto

I corsi di teoria dei numeri e le piattaforme di concorsi usano un verificatore di pseudoprimi di Euler–Jacobi perché gli allievi distinguano i bugiardi di Fermat dai bugiardi di Solovay–Strassen senza implementare a mano la reciprocità di Jacobi né l'esponenziazione modulare. I taccuini di ricerca e le scansioni ricreative chiamano lo stesso contratto quando vogliono un oracolo indipendente per un elenco pubblicato: cinquecentosessantuno, milletencentocinque, millesettecentoventinove e gli altri esempi classici in base due devono restituire vero, mentre trecentoquarantuno in base due deve restituire falso.

I laboratori di crittografia che presentano il test di primalità di Solovay–Strassen hanno bisogno di uno strumento che rifiuti n primo, perché il punto didattico è il composto che imita il criterio di Euler, non ripetere che i primi passano. I team di ingegneria che scrivono test di proprietà per le proprie librerie di Jacobi o di potenza modulare possono fissare questa risposta come riscontro.

Preferisca questo strumento quando la domanda è strettamente se un dato composto dispari soddisfa la congruenza di Euler–Jacobi per una data base — non quando Le serve una ricerca su tutte le basi, un test solo di Fermat, un rapporto di testimoni Miller–Rabin o certificati per interi di migliaia di bit.

Controlli d'aula dei bugiardi di Solovay–Strassen

Faccia inviare agli allievi n uguale a 561 con base 2 e confermi un flag Euler–Jacobi vero, poi confronti con 341 in base 2, che è solo un bugiardo di Fermat.

Oracolo indipendente per tabelle pubblicate

Convalidi elenchi offline di pseudoprimi di Euler–Jacobi rispetto a un'implementazione deterministica di Jacobi più potenza modulare.

Test di proprietà per librerie di teoria dei numeri

Fissi gcd, il simbolo di Jacobi, remainder e il booleano nei test unitari affinché una routine locale di reciprocità non si discosti dalla definizione.

Che cosa rende n uno pseudoprimo di Euler–Jacobi in base a?

n deve essere dispari e composto, gcd(a, n) deve valere 1, e a^((n−1)/2) deve essere congruo al simbolo di Jacobi (a/n) modulo n.

Perché n pari e n primo vengono rifiutati?

Gli pseudoprimi di Euler–Jacobi sono definiti come composti dispari che imitano il criterio di Euler.

In che cosa differisce da uno pseudoprimo di Fermat?

Uno pseudoprimo di Fermat in base a richiede solo a^{n−1} ≡ 1 (mod n). Il test di Euler–Jacobi esige inoltre che la radice quadrata modulare di quella condizione di Fermat coincida con il simbolo di Jacobi. 341 è un bugiardo di Fermat in base 2, ma non uno pseudoprimo di Euler–Jacobi in base 2.

Il 561 è uno pseudoprimo di Euler–Jacobi in base 2?

Sì. Elevando 2 alla potenza 280 e dividendo per 561 resta 1, e anche il simbolo di Jacobi di 2 su 561 vale 1, quindi la congruenza vale pur essendo 561 composto. È il più piccolo numero di Carmichael.

E se la base ha un fattore in comune con il numero?

In tal caso il numero non è pseudoprimo di Euler–Jacobi in quella base, perché la definizione richiede che i due siano coprimi. La risposta è no, e il divisore comune viene mostrato per spiegarne il motivo.

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.

POSThttps://api.kit.forhosting.com/numth/euler-pseudoprime-check

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/numth/euler-pseudoprime-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":561,"a":2}'
{
  "n": 561,
  "a": 2
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.euler_pseudoprime_check",
  "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.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

max_abs9007199254740991
HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Un n pari o primo viene rifiutato con invalid_input anziché un falso negativo fuorviante, perché la definizione vale solo per i composti dispari. Lo stesso modulo deterministico gira gratis nel browser e sul percorso API a $0.002 per chiamata riuscita.

Che cos'è uno pseudoprimo di Euler–Jacobi e come differisce dai test di Fermat e di Euler

La capacità non chiama mai primo un composto né pseudoprimo un primo: gli ingressi primi o pari sono errori, e il booleano is_euler_jacobi_pseudoprime è vero solo quando n è un composto dispari ammesso, la coppia è coprima e vale la congruenza di Jacobi completa.

Contratto di ingresso, campi della risposta e comportamento in errore

Invii un corpo JSON tramite POST con due interi obbligatori: n, il candidato composto dispari (alias modulus e number), e a, la base (alias base). Ogni campo può arrivare come numero JSON o come stringa di cifre decimali; i valori devono essere interi interi il cui valore assoluto resti nel campo sicuro degli interi JavaScript, così la primalità di n è decisa da un insieme fisso di testimoni Miller–Rabin, deterministico su quel bound. Campi assenti, frazioni, booleani, stringhe vuote e valori troppo grandi falliscono con invalid_input indicando il campo. In caso di successo il corpo restituisce n e a come numeri, riporta gcd e il booleano coprime, restituisce jacobi nell'insieme meno uno, zero o uno, dà exponent come (n meno uno) su due e remainder come a elevato a quell'esponente modulo n, imposta congruence_holds quando remainder coincide con il simbolo di Jacobi ridotto nel sistema dei residui modulo n, e imposta is_euler_jacobi_pseudoprime solo quando la coppia è coprima e la congruenza vale.

Dove un verificatore di pseudoprimi di Euler–Jacobi merita il suo posto

Poiché la capacità è parse di livello A puro, ogni chiamata riuscita è deterministica, offline e tariffata a $0.002, senza token di modello. Mantenga n dispari e composto, tratti invalid_input come una correzione del cliente e fissi remainder e jacobi nei test così una rifattorizzazione futura non cambi in silenzio il risultato modulare.

Che succede se gcd(a, n) è maggiore di uno?

La coppia non è di Euler–Jacobi. La risposta restituisce ancora gcd, jacobi 0 e il resto modulare, ma is_euler_jacobi_pseudoprime è falso perché la definizione esige la coprimalità.

Quanto costa il verificatore di pseudoprimi di Euler–Jacobi?

Lo strumento del browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l'ingresso non valido non viene addebitato.

Leggi la documentazione completa del KIT →