ForHosting KIT · Strumenti per sviluppatori

Test di primalità di Proth con testimone

Il test di primalità di Proth verifica un numero scritto come k × 2^n + 1 applicando il teorema di Proth al testimone fornito da Lei.

● BetaGratis · nel tuo browser
Usalo da WebAPIEmailTelegramApp presto

Prima controlla che k sia positivo e dispari, che n sia positivo e che k sia minore di 2^n. Poi calcola esattamente la potenza modulare richiesta. Una congruenza valida dimostra che il numero di Proth è primo; un testimone negativo resta inconcludente, salvo che riveli un fattore.

Inserisca un vero numero di Proth e un testimone

Un numero di Proth ha esattamente la forma N = k × 2^n + 1, dove k è un intero positivo dispari, n è un intero positivo e k è strettamente minore di 2^n. Tutte queste condizioni sono essenziali. Il calcolatore accetta k e il testimone come testo decimale, così i valori grandi rimangono esatti e non subiscono arrotondamenti in virgola mobile. Inserisca n come intero da 1 a 10,000. Lo strumento costruisce N anziché richiederlo separatamente, impedendo discrepanze tra il numero dichiarato e i parametri che lo definiscono. Verifica inoltre che il testimone sia strettamente compreso tra 1 e N. Un k pari, un valore non positivo oppure k maggiore o uguale a 2^n fanno rifiutare l’input come non appartenente alla forma di Proth, senza applicare un teorema quando le sue ipotesi non valgono. Il numero, l’esponente, il testimone e il residuo vengono restituiti come stringhe decimali quando necessario, affinché Lei possa controllare il calcolo e copiarlo in un altro strumento di aritmetica esatta.

Comprenda che cosa dimostra la congruenza

Per un numero di Proth valido N, il teorema afferma che N è primo se esiste un intero a per cui a^((N−1)/2) è congruo a −1 modulo N. Il testimone fornito rappresenta a e il calcolatore valuta la potenza modulare mediante quadratura ripetuta, senza costruire prima l’enorme potenza ordinaria. Nell’output, `residue` è il minimo residuo non negativo e `passes_test` è true esattamente quando coincide con N−1, cioè la rappresentazione modulare di −1. In tal caso `prime_proven` è true e il verdetto è `prime`: con le condizioni di Proth già verificate, questo costituisce un certificato deterministico, non una stima di probabile primalità. La risposta comprende l’esponente esatto (N−1)/2, così Lei può riprodurre autonomamente la congruenza. L’algoritmo usa soltanto operazioni intere, non sceglie testimoni casuali e non consulta tabelle o servizi remoti. Pertanto lo stesso input restituisce sempre il medesimo risultato e rende visibili tutti i valori importanti impiegati dal teorema.

Interpreti correttamente un testimone negativo

Un testimone che non produce −1 non dimostra da solo che il numero sia composto. Significa soltanto che quello specifico testimone non soddisfa la condizione sufficiente del teorema di Proth. Per questo il calcolatore restituisce `inconclusive`, non `composite`, quando il residuo è diverso e il testimone è coprimo con N. Lei può quindi provare un altro testimone scelto matematicamente oppure usare un diverso metodo deterministico di primalità. Esiste un’eccezione utile: prima di interpretare la congruenza, il calcolatore determina il massimo comune divisore tra il testimone e N. Se tale valore è un fattore proprio, il risultato è definitivamente `composite` e viene restituito il fattore. Questa distinzione impedisce l’errore comune di trasformare un teorema unidirezionale in un test bidirezionale non valido. È utile anche nei flussi automatizzati: accetti `prime` come prova, respinga `composite` quando emerge un fattore e invii `inconclusive` a un altro test senza considerarlo silenziosamente un fallimento definitivo.

Verificare un candidato di una ricerca

Controlli una coppia k e n generata con un testimone scelto prima di registrare il candidato come primo dimostrato.

Insegnare il teorema di Proth

Mostri l’esponente esatto, il residuo modulare e la differenza fra una prova e un testimone inconcludente.

Aggiungere un controllo deterministico

Convalidi le condizioni di Proth e instradi risultati primi, composti o inconcludenti senza aritmetica in virgola mobile.

Quanto costa una richiesta API?

Ogni richiesta API costa $0.002. Il calcolo può anche essere eseguito gratuitamente nel browser.

Quali condizioni definiscono un numero di Proth?

Deve essere uguale a k × 2^n + 1, con k positivo e dispari, n positivo e k < 2^n.

Un testimone negativo dimostra che il numero è composto?

No. Di norma il risultato è inconcludente. Viene dichiarato composto solo se il testimone rivela un fattore comune non banale.

Perché k e il testimone sono inseriti come stringhe?

Le stringhe decimali conservano senza arrotondamento interi oltre l’intervallo numerico sicuro di JavaScript.

Un risultato positivo è probabilistico?

No. Dopo la convalida delle condizioni di Proth, la congruenza richiesta costituisce una prova di primalità.

I testimoni vengono scelti automaticamente?

No. Lei fornisce il testimone e la capacità verifica quel valore esatto in modo deterministico.

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/proth-test

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/proth-test \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"k":"3","n":3,"witness":"3"}'
{
  "k": "3",
  "n": 3,
  "witness": "3"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "numth.proth_test",
  "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_n10000
max_decimal_digits3011
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.

Leggi la documentazione completa del KIT →