Es bien sabido que aparecerán números primos impares en el triángulo de Pascal exactamente dos veces. Sin embargo, no todos los números que aparecen exactamente dos veces en el triángulo de Pascal son primos. Llamaremos a estos números números primos de Pascal.
Los números primos de Pascal son números compuestos que aparecen exactamente dos veces en el triángulo de Pascal. Los primeros pocos primos de Pascal son
4, 8, 9, 12, 14, 16, 18, ...
Su desafío es tomar un entero positivo n como entrada y salida verdadero o falso, dependiendo de si n es un primo Pascal o no. Este es el código de golf, por lo que gana el programa más corto.

Respuestas:
Wolfram Language (Mathematica) , 45 bytes
Pruébalo en línea!
Cada número compuesto n aparece exactamente dos veces en la fila n y no puede aparecer después. Entonces, la condición para los números primos de Pascal es que no aparecen en absoluto dentro de las primeras n-1 filas.
Por lo que puedo decir, esto es más corto que verificar que aparece exactamente dos veces dentro de las primeras n filas y poder usar
!PrimeQen su lugar.fuente
Python 2 , 93 bytes
Pruébalo en línea!
Esta es una función con nombre f , que sale a través del código de salida , 0 para Pascal Primes, 1 de lo contrario.
¿Cómo funciona esto?
Básicamente, esto verifica si n ocurre en las primeras n - 1 filas del triángulo de Pascal o si es primo, y arroja un error si se cumple alguna de estas dos condiciones.
Guardado 1 byte gracias a los ovs .
fuente
Gelatina ,
11109 bytesGracias a:
’(+1) evite usarn2(-2), entonces -1 en general.Pruébalo en línea!
Enfoque alternativo , por Jonathan Allan . (defectuoso)
Explicación de la última línea:
naparece dos veces en el triángulo de Pascal" es equivalente a "nno aparece en las primerasn-1filas".truesi el número no es primo (es decirÆP == 0) y el recuentoces cero. De eso podemos deducir esoÆP == c.Se puede demostrar que si son iguales, entonces son iguales a 0, porque:
ÆPdevuelve un valor booleano, que solo puede ser 0 o 1.nes primo, por lo tanto, no puede aparecer en las primerasn-1líneas (es decir,c == 0)fuente
1no es un primo de Pascal; Esto dice que es.Ḷc€ḶFċoÆP¬funcionaría, creo.ċ=ÆPDeberia trabajar.Ḷcþ`Fċ=ÆP, también debería funcionar.Haskell ,
8684 bytesPruébalo en línea!
Explicación
La función
pdefine recursivamente un triángulo de Pascal degenerado:Como podemos ver (en esta solución
1es algo especial) cada númeronaparece exactamente dos veces en lan+1fila th y todos los elementos de las filas posteriores solo se hacen más grandes, por lo tanto, solo tenemos que verificar sinestá en algún lugar hasta lanfila th para ver si un El elemento está descalificado:Ahora tenemos
Truepara todos los elementos que aparecen más de dos veces (excepto1), por lo que todo lo que necesitamos es tener unaisPrimefunción defectuosa que regreseTruepara1:fuente
APL (Dyalog) ,
44342419 bytes5 bytes guardados gracias a @Cowsquack
Pruébalo en línea!
¿Cómo?
Nos aseguramos de que tampoco
⍳- rango0..n-1,⍳∘.!- sobre binomio cartesiano con uno mismo⊢∊- contenern,⍱- tampoco⊢|⍨-nmódulo de cada elemento de2↓⍳- rango2..n-1~0∊- no contiene0(también conocido como no divisible)fuente
(∨/1↓1≠⊢∨⍳)∧(~⊢∊⍳∘.!⍳)es más corto en dos bytes(0∊⊢|⍨2↓⍳)∧∘~⊢∊⍳∘.!⍳por otros dos, cambié el algoritmo de comprobación de primalidad~da(~0∊⊢|⍨2↓⍳)⍱⊢∊⍳∘.!⍳por uno menos bytes.JavaScript (Node.js) ,
103101bytesPruébalo en línea!
fuente
n=>(r=x=>[...Array(n).keys(F=n=>n>0?n*F(n-1):1)].every(x))(i=>r(j=>F(i)/F(j)/F(i-j)-n))>F(n-1)**2%nthreority funciona pero de hecho para un rango pequeñoRubí ,
9795 bytesPruébalo en línea!
Rascó un par de bytes.
fuente
R , 55 bytes
Pruébalo en línea!
sum(!n%%1:n)>2es la prueba y compuestosouter(1:n-1,1:n,choose)Calcula filas0an-1del triángulo de Pascal, por lo que nos aseguramos de quenno aparece allí.fuente
05AB1E , 10 bytes
Pruébalo en línea!
Explicación
Verificaciones que
nocurren exactamente dos veces en las primeras n + 1 filas del triángulo pascal y no son primos.La comparación funciona ya que no hay números primos que pueden ocurrir 3 veces en el triángulo.
fuente
Haskell , 90 bytes
Pruébalo en línea!
fuente
Pyth , 10 bytes
Pruébalo en línea! o verifique el conjunto de pruebas.
fuente
JavaScript (Node.js) ,
79133130128 bytesPruébalo en línea!
malvado primer corrector +50 bytes :(
fuente
Pitón 2 ,
105104 bytesgracias a user202729 por -1 byte
Pruébalo en línea!
fuente
p+rparece redundante ...