La grappe de choix d'un nombre entier N supérieur à 2 est défini comme étant le couple formé par le plus grand nombre premier strictement plus faible que N et le plus bas premier strictement supérieur à N .
Notez que suivant la définition ci-dessus, si l'entier est lui-même un nombre premier, alors son groupe principal est la paire des nombres premiers qui le précèdent et lui succèdent .
Tâche
Étant donné deux entiers entiers N , M ( N, M ≥ 3 ), émettent une valeur de vérité / fausse selon que N et M ont le même cluster principal.
Il s'agit de code-golf , l'objectif est donc de réduire autant que possible le nombre d'octets. Ainsi, le code le plus court dans chaque langage de programmation gagne.
Cas de test / Exemples
Par exemple, le premier groupe de 9 est [7, 11]
, car:
- 7 est le plus haut premier strictement inférieur à 9 , et
- 11 est le plus petit nombre premier strictement supérieur à 9 .
De même, le premier groupe de 67 est [61, 71]
(notez que 67 est un nombre premier).
Paires authentiques
8, 10 20, 22 65, 65 73, 73 86, 84 326, 318 513, 518
Paires de fausses
4, 5 6, 8 409, 401 348, 347 419, 418 311, 313 326, 305
la source
Réponses:
Gelée ,
64354 octetsEssayez-le en ligne! ou Essayez tous les cas de test .
Comment ça fonctionne
Fonctionne parce que deux nombres ont des clusters premiers différents s'il y a un premier entre eux, ou l'un ou l'autre nombre est lui-même premier; sauf si les deux nombres sont identiques, auquel cas
E
retourne1
quand même (tous les éléments d'un tableau à un seul élément sont égaux).la source
Perl 6 , 52 octets
Essaye-le
Étendu:
la source
Python 3 ,
1039591 octetsEssayez-le en ligne!
la source
Rubis ,
5754 octetsEssayez-le en ligne!
Utilise l'horrible test de primalité des expressions rationnelles de ma réponse (que j'avais oublié jusqu'à ce que je clique dessus) à la question connexe. Ce nombre est-il un nombre premier? . Puisque nous avons N, M ≥ 3, la vérification de 1 peut être supprimée du modèle, ce qui fait que le nombre d'octets est inférieur à l'utilisation de la fonction intégrée.
Remarque: Le test de primalité des expressions rationnelles est pathologiquement, hilarante inefficace. Je crois que c'est au moins O (n!), Même si je n'ai pas le temps de le comprendre pour le moment. Il lui a fallu douze secondes pour vérifier 100 001 et broyait pendant cinq ou dix minutes sur 1 000 001 avant de l'annuler. Utilisez / abusez à vos propres risques.
la source
n²
. Vous savez,100001! = 2824257650254427477772164512240315763832679701040485762827423875723843380680572028502730496931545301922349718873479336571104510933085749261906300669827923360329777024436472705878118321875571799283167659071802605510878659379955675120386166847407407122463765792082065493877636247683663198828626954833262077780844919163487776145463353109634071852657157707925315037717734498612061347682956332369235999129371094504360348686870713719732258380465223614176068 ... (Warning: The output exceeded 128 KiB and was truncated.)
ce qui prendra des millénaires pour fonctionner.Rétine , 58 octets
Essayez-le en ligne! Explication:
Si les deux entrées sont identiques, supprimez simplement tout et passez à la sortie 1 à la fin.
Convertissez en unaire.
Trier dans l'ordre.
Développez à une plage de tous les nombres.
Supprimez tous les numéros composites.
S'il ne reste plus de chiffres, affichez 1, sinon 0.
la source
PARI / GP, 28 octets
Essayez-le en ligne avec tous les cas de test!
Retourne
0
ou1
(valeurs PARI / GP "booléennes" habituelles).Explication:
v
doit être un vecteur (ou un vecteur de colonne ou une liste) avec les deux nombresN
etM
comme coordonnées. Par exemple[8, 10]
. Alorss
sera "l'ensemble" fait à partir de ces nombres, qui est soit un vecteur à une coordonnée (siN==M
), soit un vecteur à deux coordonnées avec des entrées triées sinon.Ensuite, si le nombre
#s
de coordonnées danss
est juste un, nous obtenons1
(véridique). Sinon,primes
renverra un vecteur de tous les nombres premiers dans l'intervalle fermé des[1]
às[2]
. La négation!
de cela donnera1
si le vecteur est vide, tandis que la négation d'un vecteur d'une ou plusieurs entrées non nulles (ici un ou plusieurs nombres premiers) donnera0
.la source
JavaScript (ES6),
5756 octetsPrend des entrées dans la syntaxe de curry
(a)(b)
. Renvoie0
ou1
.Cas de test
Afficher l'extrait de code
Comment?
la source
R ,
6346 octets-17 par Giuseppe
Essayez-le en ligne!
Application assez simple de la solution Jelly d' ETHProductions . Le principal point à retenir
estque, avec R, les vecteurs booléensany(x)==all(x)
sont équivalents àmin(x)==max(x)
.la source
numbers
installé à la placemin(x)==max(x)
équivaut à vérifier que tous les élémentsis_prime(a:b)
sont égaux, nous pouvons utiliser cette dernière astuce pour le réduire à 46 octets avec leprimes
ou lenumbers
package.C (gcc),
153146 octets-7 de Jonathan Frech
Définit une fonction
h
qui prend deuxint
s et renvoie1
pour true et0
pour falseyEssayez-le en ligne!
n
est une fonction qui renvoie 1 si son argument n'est pas premier.g
est une macro qui définit ses premier et deuxième arguments au premier premier inférieur et supérieur à (respectivement) c'est le troisième argumenth
faitg
pour les deux entrées et vérifie si les sorties sont les mêmes.la source
return a==c&&b==d;
peut êtrereturn!(a-c|b-d);
.Gelée , 6 octets
Essayez-le en ligne!
-2 merci à Dennis .
la source
APL (Dyalog Unicode) ,
18 + 16 = 3424 octetsEssayez-le en ligne!
Merci à Adám pour 10 octets.
La ligne
⎕CY'dfns'
( C OP Y ) est nécessaire pour importer les dfns ( f onctio ns d ynamiques ), incluse dans les installations Dyalog APL par défaut.Comment ça fonctionne:
la source
Python 2 ,
8786 octetsEssayez-le en ligne!
la source
C (gcc) ,
103 octets100 octetsEssayez-le en ligne!
la source
Haskell , 81 octets
Une solution simple:
Essayez-le en ligne!
la source
Mathematica,
392726 octetsÉtendu:
Usage:
Contributions: -12 octets par Jenny_mathy , -1 octet par Martin Ender
la source
Equal@@NextPrime[#,{-1,1}]&
prend en entrée[{N,M}]
ou si vous souhaitez conserver l'entrée d'origine, utilisez ces 30 octets:Equal@@NextPrime[{##},{-1,1}]&
#~NextPrime~{-1,1}
.J , 15 octets
Comment ça fonctionne:
Essayez-le en ligne!
la source