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)))))

Versi ini juga akan mencetak semua permutasi dari setiap solusi:

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
...

Dan ya, itu membuat daftar yang terlalu panjang g. Siapa peduli? :-)

Versi tidak disatukan:

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
sumber
Saya tidak memiliki akses ke mupad - dapatkah seseorang memeriksa apakah ini berfungsi?
Stanby

Jawaban:

1

Jelly , 19 byte (tetapi sangat lambat - saran ingin)

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

Cobalah 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!

Jika Anda punya ide untuk membuatnya lebih cepat dan lebih pendek, beri tahu saya!

Harry
sumber
1
12 byte . ṗЀ5menghasilkan semua kombinasi bilangan prima dengan panjang satu hingga lima. S=¥memeriksa apakah jumlah salah satu elemen sama dengan argumen rantai dan Ðfhanya menyimpan elemen-elemen itu. hanya ada di sana untuk meletakkan semua daftar bilangan prima pada tingkat yang sama dalam daftar
dylnan
Sekarang 10 byte sejak dan Ƈtelah ditambahkan sebagai alias untuk ЀdanÐf
dylnan