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
Edevuelve de1todos 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
0o1(valores "booleanos" PARI / GP habituales).Explicación:
vdebe ser un vector (o un vector de columna o una lista) con los dos númerosNyMcomo coordenadas. Por ejemplo[8, 10]. Entoncessserá 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
#sde coordenadas enses solo uno, obtenemos1(verdad). De lo contrario,primesdevolverá un vector de todos los números primos en el intervalo cerrado des[1]as[2]. La negación!de eso dará1si 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). Devoluciones0o1.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
numbersinstaló 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 conprimeselnumberspaquete o el .C (gcc),
153146bytes-7 de Jonathan Frech
Define una función
hque toma dosintsy devuelve1verdadero y0falsoPruébalo en línea!
nes una función que devuelve 1 si su argumento no es primo.ges una macro que establece su primer y segundo argumento en el siguiente primo menor y mayor que (respectivamente) su tercer argumentohlo hacegpara 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