El clúster prime de un número entero N más alto que 2 se define como el par formado por la más alta primer estrictamente inferior a N y el más bajo prime estrictamente mayor que N .
Tenga en cuenta que, siguiendo la definición anterior, si el entero es un primo en sí mismo, entonces su grupo principal es el par de primos que lo preceden y lo suceden .
Tarea
Dados dos enteros enteros N , M ( N, M ≥ 3 ), genera un valor verdadero / falso basado en si N y M tienen el mismo grupo principal.
Este es el código de golf , por lo que el objetivo es reducir su recuento de bytes tanto como sea posible. Por lo tanto, gana el código más corto en cada lenguaje de programación .
Casos de prueba / Ejemplos
Por ejemplo, el primer grupo de 9 es [7, 11]
, porque:
- 7 es el primo más alto estrictamente más bajo que 9 , y
- 11 es el primo más bajo estrictamente más alto que 9 .
Del mismo modo, el primer grupo de 67 es [61, 71]
(tenga en cuenta que 67 es un primo).
Pares de verdad
8, 10 20, 22 65, 65 73, 73 86, 84 326, 318 513, 518
Pares de falsa
4, 5 6, 8 409, 401 348, 347 419, 418 311, 313 326, 305
fuente
Respuestas:
Gelatina ,
64354 bytesPruébalo en línea! o Pruebe todos los casos de prueba .
Cómo funciona
Funciona porque dos números tienen diferentes grupos primos si hay un primo entre ellos, o si algún número es primo en sí mismo; a menos que ambos números sean iguales, en cuyo caso se
E
devuelve de1
todos modos (todos los elementos en una matriz de un solo elemento son iguales).fuente
Perl 6 , 52 bytes
Pruébalo
Expandido:
fuente
Python 3 ,
1039591 bytesPruébalo en línea!
fuente
Ruby ,
5754 bytesPruébalo en línea!
Utiliza la horrible prueba de primalidad de expresiones regulares de mi respuesta (que había olvidado hasta que hice clic en ella) a la pregunta relacionada ¿ Es este número un primo? . Como tenemos N, M ≥ 3, la verificación de 1 se puede eliminar del patrón, haciendo que el byte cuente menos que con el incorporado.
Nota: La prueba de primalidad de expresiones regulares es patológicamente hilarantemente ineficiente. Creo que es al menos O (n!), Aunque no tengo tiempo para resolverlo en este momento. Me llevó doce segundos comprobar 100.001, y estuve moliendo durante cinco o diez minutos en 1,000.001 antes de cancelarlo. Uso / abuso bajo su propio riesgo.
fuente
n²
. Ya sabes,100001! = 2824257650254427477772164512240315763832679701040485762827423875723843380680572028502730496931545301922349718873479336571104510933085749261906300669827923360329777024436472705878118321875571799283167659071802605510878659379955675120386166847407407122463765792082065493877636247683663198828626954833262077780844919163487776145463353109634071852657157707925315037717734498612061347682956332369235999129371094504360348686870713719732258380465223614176068 ... (Warning: The output exceeded 128 KiB and was truncated.)
lo que llevará miles de años para correr.Retina , 58 bytes
Pruébalo en línea! Explicación:
Si ambas entradas son iguales, simplemente elimine todo y pase a la salida 1 al final.
Convierte a unario.
Ordenar en orden.
Expande a un rango de todos los números.
Eliminar todos los números compuestos.
Si no quedan números, salida 1, de lo contrario 0.
fuente
PARI / GP, 28 bytes
¡Pruébelo en línea con todos los casos de prueba!
Devuelve
0
o1
(valores "booleanos" PARI / GP habituales).Explicación:
v
debe ser un vector (o un vector de columna o una lista) con los dos númerosN
yM
como coordenadas. Por ejemplo[8, 10]
. Entoncess
será el "conjunto" formado por estos números, que es un vector de una coordenada (siN==M
), o un vector de dos coordenadas con entradas ordenadas de lo contrario.Entonces, si el número
#s
de coordenadas ens
es solo uno, obtenemos1
(verdad). De lo contrario,primes
devolverá un vector de todos los números primos en el intervalo cerrado des[1]
as[2]
. La negación!
de eso dará1
si el vector está vacío, mientras que la negación de un vector de una o más entradas distintas de cero (aquí uno o más primos) dará0
.fuente
JavaScript (ES6),
5756 bytesToma entrada en la sintaxis de curry
(a)(b)
. Devoluciones0
o1
.Casos de prueba
Mostrar fragmento de código
¿Cómo?
fuente
R ,
6346 bytes-17 por Giuseppe
Pruébalo en línea!
Aplicación bastante simple de la solución Jelly de ETHProductions . La principal conclusión interesante
esque con los vectores booleanos Rany(x)==all(x)
es equivalente amin(x)==max(x)
.fuente
numbers
instaló en su lugarmin(x)==max(x)
es equivalente a verificar que todos los elementosis_prime(a:b)
sean iguales, podemos usar este último truco para reducirlo a 46 bytes conprimes
elnumbers
paquete o el .C (gcc),
153146bytes-7 de Jonathan Frech
Define una función
h
que toma dosint
sy devuelve1
verdadero y0
falsoPruébalo en línea!
n
es una función que devuelve 1 si su argumento no es primo.g
es una macro que establece su primer y segundo argumento en el siguiente primo menor y mayor que (respectivamente) su tercer argumentoh
lo haceg
para ambas entradas y comprueba si las salidas son las mismas.fuente
return a==c&&b==d;
puede serreturn!(a-c|b-d);
.Jalea , 6 bytes
Pruébalo en línea!
-2 gracias a Dennis .
fuente
APL (Dyalog Unicode) ,
18 + 16 = 3424 bytesPruébalo en línea!
Gracias a Adám por 10 bytes.
La línea
⎕CY'dfns'
( C OP Y se necesita) para importar los dfns ( d ynamic f unctio ns ) de recogida, incluido con defecto Dyalog APL instala.Cómo funciona:
fuente
Python 2 ,
8786 bytesPruébalo en línea!
fuente
C (gcc) ,
103 bytes100 bytesPruébalo en línea!
fuente
Haskell , 81 bytes
Una solución sencilla:
Pruébalo en línea!
fuente
Mathematica,
392726 bytesExpandido:
Uso:
Contribuciones: -12 bytes por Jenny_mathy , -1 byte por Martin Ender
fuente
Equal@@NextPrime[#,{-1,1}]&
toma como entrada[{N,M}]
o si desea mantener la entrada original, use estos 30 bytes:Equal@@NextPrime[{##},{-1,1}]&
#~NextPrime~{-1,1}
.J , 15 bytes
Cómo funciona:
Pruébalo en línea!
fuente