(Diilhami secara acak oleh /mathpro//q/339890 )
(Terkait: 1 , 2 )
Diberikan daftar input dari bilangan prima yang berbeda (misalnya, [2, 5, 7]
), dan bilangan bulat n
, output semua bilangan bulat positif benar-benar lebih kecil dari n
yang hanya berisi bilangan prima sebagai pembagi. Untuk input [2, 5, 7]
dan n=15
ini berarti output dari [2, 4, 5, 7, 8, 10, 14]
.
Contoh lebih lanjut
[list] n | output
[2, 5, 7] 15 | [2, 4, 5, 7, 8, 10, 14]
[2, 5, 7] 14 | [2, 4, 5, 7, 8, 10]
[2] 3 | [2]
[2] 9 | [2, 4, 8]
[103, 101, 97] 10000 | [97, 101, 103, 9409, 9797, 9991]
[97, 101, 103] 104 | [97, 101, 103]
Aturan dan Klarifikasi
- Daftar input dijamin tidak kosong, tetapi mungkin hanya elemen tunggal
- Anda dapat menganggap daftar input sudah disortir dengan cara apa pun yang paling nyaman
n
akan selalu lebih besar dari elemen terbesar dalam daftar input- Karena, misalnya,
2**0 = 1
Anda dapat secara opsional memasukkan1
dalam daftar output Anda - Input dan output dapat diberikan dengan metode apa pun yang mudah
- Anda dapat mencetak hasilnya ke STDOUT atau mengembalikannya sebagai hasil fungsi
- Program lengkap atau fungsi dapat diterima
- Jika berlaku, Anda dapat menganggap bilangan bulat input / output sesuai dengan
int
rentang asli bahasa Anda - Celah standar dilarang
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang
1
dalam output.[2, 3, 7]
Anda tidak dapat digunakan5
.Jawaban:
Stax , 6 byte
Jalankan dan debug di staxlang.xyz!
Dibongkar (7 byte) dan penjelasan:
sumber
05AB1E , 6 byte
Mengambil bilangan bulat sebagai input pertama, daftar sebagai yang kedua. Termasuk opsional
1
dalam output.Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
Dua alternatif 6 byte yang disediakan oleh @Grimy :
Cobalah online.
Yang ini sangat lambat (
[2,5,7], 15
test case sudah habis), tetapi kurang seperti dua pendekatan lainnya:Berbeda dengan dua program lain di atas, ia mengambil daftar sebagai input pertama, dan integer sebagai yang kedua. Itu memang termasuk opsional
1
dalam output juga.Cobalah online.
sumber
sиPѦʒ›
. Saya pikir saya punya angka 6, tapi sepertinya tidak ada cara untuk menggunakans
/I
/¹
4747561509943000000000000000
. ;)GNfåP–
JavaScript (ES6),
64 ... 5250 byteMengambil input sebagai
(n)(primes)
tempat menetapkan bilangan prima . Keluaran dengan memodifikasi set.Cobalah online!
Berkomentar
sumber
Python 3 ,
6865 byteCobalah online!
-3 byte terima kasih kepada @xnor
Fungsi ini mengambil urutan utama dan bilangan bulat sebagai input. Outputnya adalah daftar yang mencakup 1.
Tidak Disatukan:
Cobalah online!
sumber
c*s<n*s
. Sunting:n//c*s
lebih pendek.Haskell , 51 byte
x
p
mapM((<$>[0..n]).(^))p
product
n
p
Cobalah online!
sumber
Haskell , 39 byte
Cobalah online!
Memeriksa apakah
k
hanya dapat dibagi oleh bilangan primal
dengan melihat apakah produk yangl
dibawa ke daya tinggi dapat habis dibagik
.sumber
Python 2 , 65 byte
Cobalah online!
Memeriksa apakah
k
hanya dapat dibagi oleh bilangan primal
dengan melihat apakah produk yangl
dibawa ke daya tinggi dapat habis dibagik
.Jika
l
dapat diambil sebagai daftar stringeval("*".join(l))
menghemat 3 byte lebihreduce(int.__mul__,l)
dan dapat digunakan dalam Python 3 yang kurangreduce
.Python 3 , 64 byte
Cobalah online!
Fungsi mencetak dalam urutan terbalik dan berakhir dengan kesalahan.
Solusi rekursif di bawah ini akan lebih pendek jika
n
itu sendiri dimasukkan dalam daftar. Saya mencoba menghitung produk secara rekursifl
juga, tapi itu lebih lama.62 byte (tidak bekerja)
Cobalah online!
sumber
Gaia , 10 byte
Cobalah online!
Saya belum pernah menggunakan
‡
monad sebelumnya, ini cukup membantu untuk manipulasi stack.sumber
J , 24 byte
Cobalah online!
sumber
Jelly , 7 byte
Cobalah online!
Sebuah link diadik yang mengambil batas atas eksklusif sebagai argumen kirinya dan daftar bilangan prima sebagai haknya. Mengembalikan daftar yang mencakup 1 serta angka-angka yang hanya terdiri dari bilangan prima yang disediakan.
Alternatif 7 akan menjadi
ṖÆfḟ¥Ðḟ
sumber
Python 2 , 98 byte
Cobalah online!
sumber
Japt
-f
,118 byteCobalah
sumber
Japt
-f
, 7 byteCobalah
sumber
1
dalam output, yang seharusnya tidak. Saya mulai dengank e!øV
untuk solusi saya juga tetapi membutuhkan 2 byte ekstra untuk menyaring0
&1
.Since, e.g., 2**0 = 1, you can optionally include 1 in your output list
Ruby
-rprime
, 61 byteCobalah online!
sumber
Retina 0.8.2 , 64 byte
Cobalah online! Daftar termasuk kasus uji yang lebih kecil (
10000
waktu habis karena semua string panjang). Mengambil input dalam urutann f1 f2 f3...
(faktor tidak perlu menjadi prima tetapi mereka perlu menjadi coprime). Output termasuk1
. Penjelasan:Konversikan ke unary.
Buat daftar dari 0 hingga
n-1
, dalam desimal dan unary.Membagi unary berulang kali dengan faktor apa pun yang tersedia.
Keluarkan angka desimal di mana angka unary dikurangi menjadi
1
.sumber
Pyth , 10 byte
Cobalah online!
Mengambil input sebagai
[[primes...], n]
sumber
Perl 6 , 27 byte
Cobalah online!
Port solusi Haskell xnor. Juga menghasilkan 1.
sumber
Arang ,
2220 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Terlalu lambat untuk test case yang lebih besar. Penjelasan:
Jawaban 22 byte yang lebih cepat sebelumnya:
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Output termasuk
1
. Penjelasan:Dorong
1
ke daftar kosong yang telah ditentukan.Lewati daftar, termasuk item yang didorong ke sana selama loop.
Lipat gandakan item saat ini dengan setiap perdana dan lewati produk.
Periksa apakah produk tersebut merupakan nilai baru.
Jika demikian maka dorong ke daftar.
Cetak daftar.
sumber
C (dentang) , 115 byte
Cobalah online!
Solusi berbasis Saringan Eratosthenes.
(Termasuk 1 dalam output)
Berkat saran @ceilingcat: printf (x [i] + "\ 0% d", i ++) alih-alih x [i] && printf ("% d", i), i ++ saya kira itu menggeser penunjuk literal tetapi tidak dapat menemukan dokumentasi, jika ada yang bisa memberi saya wawasan itu akan diterima.
sumber
x[i]==1
kemudian string tersebut"%d "
. Jikax[i]==0
kemudian string tersebut""
. String C diakhiri null sehingga karakter null eksplisit mengakhiri string. Peretasan ini juga menyalahgunakan beberapa perilaku tidak terdefinisi di dentang yang terkait dengani++
.