Dato un numero intero non negativo N
, genera il numero intero dispari positivo più piccolo che è un forte pseudoprime a tutte le N
prime basi prime.
Questa è la sequenza OEIS A014233 .
Casi di test (uno indicizzato)
1 2047
2 1373653
3 25326001
4 3215031751
5 2152302898747
6 3474749660383
7 341550071728321
8 341550071728321
9 3825123056546413051
10 3825123056546413051
11 3825123056546413051
12 318665857834031151167461
13 3317044064679887385961981
Casi di prova per N > 13
non sono disponibili perché tali valori non sono stati ancora trovati. Se riesci a trovare i termini successivi nella sequenza, assicurati di inviarli a OEIS!
Regole
- Puoi scegliere di assumere
N
come valore indicizzato zero o un indice indicizzato. - È accettabile che la tua soluzione funzioni solo per i valori rappresentabili nell'intervallo di numeri interi della tua lingua (quindi fino a
N = 12
numeri interi a 64 bit senza segno), ma la tua soluzione deve teoricamente funzionare per qualsiasi input supponendo che la tua lingua supporti numeri interi di lunghezza arbitraria.
sfondo
Qualsiasi numero intero pari positivo x
può essere scritto nella forma in x = d*2^s
cui d
è dispari. d
e s
può essere calcolato dividendo ripetutamente n
per 2 fino a quando il quoziente non è più divisibile per 2. d
è quel quoziente finale ed s
è il numero di volte in cui 2 dividen
.
Se un numero intero positivo n
è primo, allora il piccolo teorema di Fermat afferma:
In qualsiasi campo finito Z/pZ
(dov'è p
un numero primo), le uniche radici quadrate di 1
sono 1
e -1
(o, equivalentemente, 1
e p-1
).
Possiamo usare questi tre fatti per dimostrare che una delle seguenti due affermazioni deve essere vera per un numero primo n
(dove d*2^s = n-1
ed r
è un numero intero in [0, s)
):
Il test di primalità di Miller-Rabin opera testando il contrappeso della rivendicazione di cui sopra: se esiste una base a
tale che entrambe le condizioni di cui sopra sono false, allora n
non è primo. Quella base a
si chiama testimone .
Ora, testare ogni base [1, n)
sarebbe proibitivo in termini di tempo di calcolo per grandi n
. Esiste una variante probabilistica del test di Miller-Rabin che verifica solo alcune basi scelte casualmente nel campo finito. Tuttavia, è stato scoperto che a
è sufficiente testare solo basi prime e quindi il test può essere eseguito in modo efficiente e deterministico. In effetti, non tutte le basi prime devono essere testate: è richiesto solo un certo numero e quel numero dipende dalla dimensione del valore testato per la primalità.
Se viene testato un numero insufficiente di basi prime, il test può produrre falsi positivi - numeri interi compositi dispari in cui il test non riesce a dimostrare la loro composizione. In particolare, se una base a
non riesce a provare la composizione di un numero composito dispari, quel numero viene chiamato base pseudoprime fortea
. Questa sfida riguarda la ricerca di numeri compositi dispari che sono psuedoprimi forti su tutte le basi minori o uguali al N
numero primo (che equivale a dire che sono pseudoprimi forti su tutte le basi primi inferiori o uguali al N
numero primo) .