Étant donné un entier non négatif N
, sortez le plus petit entier positif impair qui est un pseudoprime fort à toutes les premières N
bases premières.
Il s'agit de la séquence OEIS A014233 .
Cas de test (un index)
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
Les cas de test pour N > 13
ne sont pas disponibles car ces valeurs n'ont pas encore été trouvées. Si vous parvenez à trouver le (s) terme (s) suivant (s) dans la séquence, assurez-vous de les soumettre à OEIS!
Règles
- Vous pouvez choisir de prendre
N
comme valeur indexée zéro ou une valeur indexée. - Il est acceptable que votre solution ne fonctionne que pour les valeurs représentables dans la plage d'entiers de votre langue (donc jusqu'à
N = 12
pour les entiers 64 bits non signés), mais votre solution doit théoriquement fonctionner pour toute entrée en supposant que votre langue prend en charge les entiers de longueur arbitraire.
Contexte
Tout entier positif , même x
peut être écrit sous la forme x = d*2^s
où d
est impair. d
et s
peut être calculé en divisant à plusieurs reprises n
par 2 jusqu'à ce que le quotient ne soit plus divisible par 2. d
est ce quotient final, et s
est le nombre de fois où 2 se divise n
.
Si un entier positif n
est premier, le petit théorème de Fermat déclare:
Dans tout champ fini Z/pZ
(où p
est un nombre premier), les seules racines carrées de 1
sont 1
et -1
(ou, de manière équivalente, 1
et p-1
).
Nous pouvons utiliser ces trois faits pour prouver que l'une des deux déclarations suivantes doit être vraie pour un nombre premier n
(où d*2^s = n-1
et r
est un entier dans [0, s)
):
Le test de primalité de Miller-Rabin fonctionne en testant la contraposition de la revendication ci-dessus: s'il existe une base a
telle que les deux conditions ci-dessus sont fausses, alors n
n'est pas premier. Cette base a
s'appelle un témoin .
Désormais, tester chaque base en [1, n)
serait extrêmement coûteux en temps de calcul pour les grandes n
. Il existe une variante probabiliste du test de Miller-Rabin qui ne teste que certaines bases choisies au hasard dans le champ fini. Cependant, il a été découvert que le test uniquement des a
bases primaires est suffisant, et donc le test peut être effectué de manière efficace et déterministe. En fait, toutes les bases principales n'ont pas besoin d'être testées - seul un certain nombre est requis, et ce nombre dépend de la taille de la valeur testée pour la primalité.
Si un nombre insuffisant de bases premières est testé, le test peut produire des faux positifs - des nombres entiers composites impairs où le test ne parvient pas à prouver leur composition. Plus précisément, si une base a
ne parvient pas à prouver la composition d'un nombre composé impair, ce nombre est appelé un pseudoprime fort à baser a
. Ce défi consiste à trouver les nombres composites impairs qui sont des pseudoprimes forts pour toutes les bases inférieures ou égales au N
th nombre premier (ce qui revient à dire qu'ils sont des pseudoprimes forts pour toutes les bases premières inférieures ou égales au N
th nombre premier) .