Dado un número entero mayor que 1, genera el número de formas en que puede expresarse como la suma de uno o más primos consecutivos.
El orden de los sumandos no importa. Una suma puede consistir en un solo número (por lo que la salida de cualquier primo será al menos 1.)
Este es el código de golf . Aplican reglas estándar.
Consulte esta wiki de OEIS para obtener información y secuencias relacionadas, incluida la secuencia misma OEIS A054845 .
Casos de prueba
2 => 1
3 => 1
4 => 0
5 => 2
6 => 0
7 => 1
8 => 1
10 => 1
36 => 2
41 => 3
42 => 1
43 => 1
44 => 0
311 => 5
1151 => 4
34421 => 6
2æR
es lo mismo queÆR
R , 95 bytes
Pruébalo en línea!
fuente
x
!cumsum
y configurar los primeros elementos0
para obtener las sumas principales consecutivas. El primer golf fue solo yo tratando de hacer que el último caso de prueba funcionara, ¡y tuve la suerte de que era más corto queouter
! Tengo más que suficientes repeticiones (al menos hasta que obtengamos los requisitos de repeticiones adecuados), ¡y siempre estoy feliz de ayudar a más golfistas R a obtener más visibilidad!05AB1E , 6 bytes
Código
Utiliza la codificación 05AB1E . Pruébalo en línea!
fuente
JavaScript (ES6), 92 bytes
Pruébalo en línea!
Comentado
fuente
MATL,
1512 bytesPruébalo en MATL Online
La inicial
E
(multiplicar por 2) se asegura de que, para la entrada principal, el resultado de la posteriorYs
(cumsum
) no tenga la entrada principal repitiéndose en la parte puesta a cero de la matriz (por lo tanto, jugando con el conteo).Explicación:
fuente
Brachylog ,
149 bytesPruébalo en línea!
Múltiples casos de prueba
(-5 bytes completos, gracias a @Kroppeb!)
Explicación:
fuente
⟦ṗˢ
dentro delᶜ
bucle. Obtuve este{⟦ṗˢs+;?=}ᶜ
paquete de prueba: ¡ Pruébelo en línea!;?=
by?
y obtener{⟦ṗˢs+?}ᶜ
(9 bytes)Retina 0.8.2 , 68 bytes
Pruébalo en línea! El enlace incluye casos de prueba más rápidos. Explicación:
Ejecute el script completo en modo multilínea
^
y$
coincida en cada línea.Convierte a unario dos veces, primero usando
_
s, luego usando1
s._
Eliminar todos los números compuestos en el rango.
_
_
1
fuente
Casco ,
98 bytes-1 byte gracias a Mr.Xcoder (¡use un argumento con nombre en
¹
lugar deS
)!Pruébalo en línea!
Explicación
fuente
#¹ṁ∫ṫ↑İp
debe guardar 1 byte.MATL , 16 bytes
¡Pruébalo en MATL Online!
Explicación
fuente
Python 2 ,
106104bytesPruébalo en línea!
fuente
Limpio ,
10098 bytesPruébalo en línea!
Define la función
$ :: Int -> Int
que funciona como se explica a continuación:(La explicación es para una versión anterior pero lógicamente idéntica)
fuente
Perl 6 , 53 bytes
Pruébalo en línea!
Utiliza el operador de reducción de triángulo dos veces. El último caso de prueba es demasiado lento para TIO.
Explicación
fuente
Japt, 17 bytes
¡Debe haber un camino más corto que este!
Maldición en el último caso de prueba.
Pruébalo o ejecuta todos los casos de prueba
Explicación
fuente
Java 10,
195194184182 bytes-1 byte gracias a @ceilingcat .
-10 bytes gracias a @SaraJ .
Pruébalo en línea.
Explicación:
Es básicamente similar a las respuestas de Jelly o 05AB1E , solo 190 bytes más. XD
Aquí una comparación para cada una de las partes, agregada solo por diversión (y para ver por qué Java es tan detallado y estos lenguajes de golf son tan poderosos):
n->{}
[2, n]
: (Jelly: 2 bytes)ÆR
; (05AB1E: 2 bytes)ÅP
; (Java 10: 95 bytes)var L=new java.util.Stack();int i=1,k,x,s,r=0;for(;i++<n;){for(k=1;i%++k>0;);if(k==i)L.add(i);}
Ẇ
; (05AB1E: 1 byte)Œ
; (Java 10: 55 bytes)for(x=L.size(),i=0;i<x;)for(k=i++;k<x;)
y(int)L.get(k++);
§
; (05AB1E: 1 byte)O
; (Java 10: 9 bytes),s
y,s=0
ys+=
ċ
; (05AB1E: 2 bytes)QO
; (Java 10: 15 bytes),r=0
yr+=s==n?1:0
return r;
fuente
218918
en 12.5 seg tbh, considerando que hará218918-2 = 218,916
iteraciones dentro de un bucle interno de:n
iteraciones para cada primo; 1 iteración por cada número par; y en algún lugar entre[2,p/2)
iteraciones para cada número impar (cerca de dos mil millones de iteraciones), después de lo cual agrega19518
primos a la lista en la memoria. Y luego realizará un bucle adicionalsum([0,19518]) = 190,485,921
veces en el segundo bucle anidado. 2.223.570.640 iteraciones en total para ser exactos .%i
ya que estamos revisando el rango[2, n]
, por lo que no tendré que hacerloi=1
. :)Physica , 41 bytes
Pruébalo en línea!
Cómo funciona
fuente
Haskell , 89 bytes
Pruébalo en línea!
Alternativa, 89 bytes
Pruébalo en línea!
fuente