Diberi nomor besar (dalam basis 10), seperti 1234567891011121314151617, temukan "subnumber" utama di dalamnya.
"Subnumber" utama adalah urutan digit berurutan (diambil dari input), yang mewakili bilangan prima (dalam basis 10).
- Input : Nomor (baik string, file, atau apa pun yang Anda suka).
- Output : Semua subnumber utama dipisahkan entah bagaimana (baik dalam daftar, file, string dipisahkan koma ...) Jika hasilnya kosong, Anda dapat mengambil konvensi yang Anda suka (string hardcoded, string kosong, omong kosong, tetapi program tidak boleh jatuh.
- Contoh
1234 -> 2, 3, 23
6542 -> 5, 2
14 -> [.. output kosong]
Ini adalah kode-golf. Program terpendek menang!
[Sunting]: aturan tambahan, program harus dijelaskan! Tidak semua orang fasih berbahasa Jelly :)
Jawaban:
05AB1E (warisan) , 3 byte
Cobalah online!
Substring dari input yang prima.
sumber
Perl 6 , 28 byte
Cobalah online!
The
:ex
( "lengkap") bendera untuk operator pertandinganm
membuatnya kembali setiap pertandingan mungkin.+
(yaitu, setiap substring dari satu atau lebih karakter), bahkan tumpang tindih yang. Hyperoperator+«
mengubah daftarMatch
objek menjadi angka, yang kemudian difilter untuk pemberian nilai olehgrep &is-prime
.sumber
{+«m:ex/(.+)<?{$0.is-prime}>/}
Brachylog , 4 byte
-1 byte terima kasih kepada Kroppeb .
Cobalah online!
ᶠ
ind semuas
ubstrings,ˢ
memilihṗ
Rimessumber
sᶠṗˢ
lebih pendek satu byte. Ia menemukan semua substring dan mengembalikan yang prima. Lihat di sini codegolf.stackexchange.com/a/117871/81957Python 2 ,
6665 byteCobalah online!
sumber
while k<=n
atau, dengan biaya 0 byte,while~n+k
while
pernyataannya? Saya belum pernah melihat kode jenis ini sebelumnya. Juga belum melihat penggunaan `` , apa fungsinya?while stmt:
akan berjalan selamastmt
memiliki nilai yang dianggap benar oleh python. Satu-satunya integer palsu di Python adalah0
. Karenanya kode tersebut akan dijalankan sebagai~n+k != 0
.~
adalah operator komplemen bitwise, dan~n
setara dengan-n - 1
.~n + k != 0
<=>-n - 1 + k != 0
<=>k != n + 1
. Seperti kita incrementingk
oleh1
dalam setiap operasi,k != n + 1
dalam hal ini setara dengank <= n
.`n`
sama denganrepr(n)
di Python 2. (tidak berfungsi di Python 3).Japt ,
1310 byteTerima kasih @ Shaggy -3 byte
Cobalah online!
sumber
Jelly ,
54 byte-1 terima kasih kepada Kevin Cruijssen (
Ẓ
alias untukÆP
)Tautan monadik yang menerima daftar angka * yang menghasilkan daftar bilangan bulat utama.
* pergi dengan "baik string, file, atau apa pun yang Anda suka" - untuk mengambil integer, awali kode dengan
D
Cobalah online!
Bagaimana?
sumber
ÆP
dapatẒ
jika saya tidak salah?Java 8,
148147 byteCobalah online.
Penjelasan:
sumber
MATL , 9 byte
Cobalah online!
Penjelasan
sumber
Bash + GNU Core Utils:
8077 BytesIni tidak mungkin yang terpendek, tetapi saya mengalami kesulitan untuk menghasilkan sesuatu yang lebih baik. Dibutuhkan bantuan!
Dengan hanya berpegang pada POSIX, saya mendapat 82:
sumber
R , 60 byte
Cobalah online!
Tidak terlalu efisien, terinspirasi oleh jawaban @ovs python 2
sumber
Python 2 ,
115114 byteCobalah online!
sumber
if~-n*all(n%i for i in range(2,n))
menghemat 4.Sekam , 5 byte
Cobalah online!
sumber
Bersihkan , 108 byte
Cobalah online!
sumber
Pyth, 8 byte
Suite uji
Mengambil input sebagai string, menampilkan daftar bilangan bulat. Dapat juga mengambil input sebagai
Penjelasan:int
dengan menambahkan`
di bagian akhir untuk byte tambahan.Dan
`
baru saja dikonversiint
kestr
.sumber
Bahasa Wolfram (Mathematica) , 40 byte
Cobalah online!
Input dan output adalah daftar digit. Dalam hal tidak ada subnumber utama daftar kosong
{}
dikembalikan.Penggunaan
@*
untukComposition
fungsi.Subsequences
memberikan daftar semua urutan input, danSelect[PrimeQ@*FromDigits]
merupakan bentuk operatorSelect
yang mengembalikan daftar semua elemen yangPrimeQ@*FromDigits
dikembalikanTrue
.sumber
Matlab, 89 byte
Cobalah secara Online!
sumber