Escriba el código más corto que pueda para resolver el siguiente problema:
Entrada:
Un entero X con 2 <= XyX <= 100
Salida:
Combinaciones totales de 2, 3 y 5 (se permite la repetición, el orden importa) cuya suma es igual a X.
Ejemplos:
Entrada: 8
Salida: 6porque las combinaciones válidas son:
3+5
5+3
2+2+2+2
2+3+3
3+2+3
3+3+2
Entrada: 11
Salida: 16porque las combinaciones válidas son
5+3+3
5+2+2+2
3+5+3
3+3+5
3+3+3+2
3+3+2+3
3+2+3+3
3+2+2+2+2
2+5+2+2
2+3+3+3
2+3+2+2+2
2+2+5+2
2+2+3+2+2
2+2+2+5
2+2+2+3+2
2+2+2+2+3
Entrada: 100
Salida: 1127972743581281porque las combinaciones válidas son ... muchas
La entrada y salida pueden ser de cualquier forma razonable. El conteo de bytes más bajo en cada idioma gana. Aplican reglas estándar de código de golf .

sumen ellos no fue una buena idea para tratar de resolver esa pregunta ...11de12a16. Por supuesto, siéntete libre de arreglar esto si noRespuestas:
Python 2 ,
4645 bytesgracias a xnor por -1 byte
Pruébalo en línea!
fuente
and/orlas obras y ahorra un byte:f=lambda n:n>0and f(n-2)+f(n-3)+f(n-5)or n==0.Oasis , 9 bytes
Pruébalo en línea!
Explicación
fuente
Pyth , 9 bytes
Pruébalo aquí!
Pyth , 16 bytes
Pruébalo aquí
¿Cómo?
Genera los factores primos de 30 , a saber [2, 3, 5] , obtiene el conjunto de potencias repetidas N veces, elimina elementos duplicados, suma cada lista y cuenta las ocurrencias de N en eso.
Para cada parición entera p , verifica si p es igual a p ∩ primefac (30) . Solo mantiene aquellos que satisfacen esta condición, y para cada partición k restante , obtiene la lista de permutaciones de k , aplana la lista resultante en 1 nivel, la deduplica y recupera la longitud.
fuente
Jalea , 11 bytes
Pruébalo en línea!
Cómo funciona
5ÆRẋHŒPQḅ1ċ -> Programa completo. Argumento: N, un número entero. 5ÆR -> Empuja todos los números primos entre 2 y 5, inclusive. ẋH -> Repita esta lista N / 2 veces. ŒP -> Generar el conjunto de potencia. Q -> Eliminar entradas duplicadas. ḅ1 -> Convertir cada uno de unario (es decir, sumar cada lista) ċ -> Cuente las ocurrencias de N en esta lista.fuente
³conH(luego expirará a las 12 en lugar de a las 6)Perl, 38 bytes
Incluye
+1parapLo suficientemente interesante que tengo que usar
\1para forzar el retroceso. Usualmente uso,^pero el optimizador de expresiones regulares parece demasiado inteligente para eso y da resultados demasiado bajos. Probablemente tendré que comenzar a dar números de versión de Perl cuando use este truco ya que el optimizador puede cambiar en cada versión. Esto fue probado enperl 5.26.1Esto
49es eficiente y realmente puede manejarX=100(pero se desbordaX=1991)fuente
C, 41 bytes
Pruébalo en línea!
fuente
JavaScript (ES6), 32 bytes
Mismo algoritmo que en la respuesta Python de ovs .
Casos de prueba
Mostrar fragmento de código
fuente
R ,
564947 bytesEnfoque recursivo de la respuesta de ovs . Giuseppe eliminó esos dos bytes finales para que sea 47.
Pruébalo en línea!
fuente
0(no lo consideré antes), ya que unario también+lo obligaránumeric.MATL , 15 bytes
Muy ineficiente: la memoria requerida es exponencial.
Pruébalo en línea!
Cómo funciona
fuente
05AB1E , 10 bytes
Pruébalo en línea!
fuente
Ruby , 41 bytes
Pruébalo en línea!
Esta es una solución recursiva, el ser llamado recurcive:
[n-5,n-2,n-3].sum(&f).fuente
Pari / GP , 36 bytes
Pruébalo en línea!
Más largo, pero más eficiente:
Pari / GP , 37 bytes
Pruébalo en línea!
fuente
Jalea , 21 bytes
Pruébalo en línea!
Seguramente se puede jugar al golf
fuente
Pyth, 12 bytes
Esto es terriblemente ineficiente y alcanza el límite de memoria para entradas superiores a 5.
Pruébalo en línea
Explicación
fuente
Protón , 32 bytes
Pruébalo en línea!
El mismo enfoque que la respuesta de los ovs .
fuente
Wolfram Language (Mathematica) , 43 bytes
Pruébalo en línea!
Explicación:
FrobeniusSolvecalcula todas las soluciones de la suma desordenada2a + 3b + 5c = n, luegoMultinomialcalcula cuántas formas podemos ordenar esas sumas.O podríamos copiar la solución de todos los demás para el mismo número de bytes:
fuente
Haskell , 40 bytes
Pruébalo en línea!
fuente