MuPAD 113 - 8 = 105

1

MuPAD 113 - 8 = 105

g:=[0,ithprime(i)$i=1..n]:f:=_for_in:f(l,g,f(d,g,f(b,g,f(a,g,f(c,g,if l+d+b+a+c=n then print(l,d,b,a,c)end)))))

Esta versão também imprimirá todas as permutações de todas as soluções:

0, 0, 0, 0, 7
0, 0, 0, 2, 5
0, 0, 0, 5, 2
0, 0, 0, 7, 0
0, 0, 2, 0, 5
...

E sim, ele cria uma lista muito longa g. Quem se importa? :-)

Versão não destruída:

g:=[0].select([$1..n],isprime):
for l in g do
  for d in g do
    for b in g do
      for a in g do
        for c in g do
          if l+d+b+a+c=n then print(l,d,b,a,c); end;
        end
      end
    end
  end
end
Christopher Creutzig
fonte
Não tenho acesso ao mupad - alguém pode verificar se isso funciona?
Boothby

Respostas:

1

Geléia , 19 bytes (mas muito lento - são necessários conselhos)

ÆR;0x5Œ!ḣ€5¹©S€i³ị®

Experimente online!

ÆR;0x5Œ!ḣ€5¹©€i³ị®     main link, takes one argument N
ÆR                     get all the primes less than N
  ;0x5                 add zero, and then repeat the entire list 5 times
      Œ!               get all the permutations of this huge list (takes a long time!)
        ḣ€5            for each permutation, just take the first 5 numbers
                       (this gives us all possible length-5 combinations of the primes plus zero, with some repeats)
           ¹©          save that list to register
              S€       take the sum of every permutation in the list...
                i³     and find the index of our first argument N in that list of sums
                  ị®   then recall our list of permutations, and get the correct permutation at that index!

Se você tiver alguma idéia para torná-lo mais rápido e mais curto, entre em contato!

atormentar
fonte
11
12 bytes . ṗЀ5produz todas as combinações de números primos com comprimentos de um a cinco. S=¥verifica se a soma de um dos elementos é igual ao argumento da cadeia e Ðfmantém apenas esses elementos. está lá apenas para colocar todas as listas de números primos no mesmo nível na lista
dylnan
Agora 10 bytes desde e Ƈforam adicionados como aliases para ЀeÐf
dylnan