La secuencia de números segmentados o números primos de medición ( OEIS A002048 ) es la secuencia de números de manera que cada miembro es el número positivo más pequeño (mayor que cero) que no se puede hacer de una suma de números consecutivos anteriores, con a(0) = 1
.
Ejemplo
Para calcular a(7)
primero calculamos a(0->6) = [1, 2, 4, 5, 8, 10, 14]
. entonces comenzamos desde cero y pasamos por los números hasta encontrar uno que no es la suma de uno o más números consecutivos en la secuencia.
1 = 1
2 = 2
3 = 1 + 2
4 = 4
5 = 5
6 = 2 + 4
7 = 1 + 2 + 4
8 = 8
9 = 4 + 5
10 = 10
11 = 2 + 4 + 5
12 = 1 + 2 + 4 + 5
13 = 5 + 8
14 = 14
15 = ????
Dado que no se pueden hacer quince sumando ninguna subsecuencia consecutiva y cada número más pequeño puede ser quince es el siguiente número en la secuencia. a(7) = 15
Tarea
Su tarea es tomar un número (a través de métodos estándar) y generar el enésimo término en esta secuencia (a través de métodos de salida estándar). Este es el código de golf y se le puntuará como tal.
Casos de prueba
0 -> 1
1 -> 2
2 -> 4
3 -> 5
4 -> 8
5 -> 10
6 -> 14
7 -> 15
8 -> 16
9 -> 21
()
para que sea una función adecuada. El parcial aplicado!!
es una sección del operador y debe encerrarse()
para que sea una función. Sin él, es solo un fragmento que solo se convierte en una función (o "valor" para usar términos estrictos de Haskell) con el argumento que falta.