Tugas
Tugas Anda adalah mencetak atau mengeluarkan semua angka positif yang setiap substring multi-digit dalam representasi desimalnya juga prima. Jika angka memiliki setidaknya 2 digit, ini akan berarti bahwa nomor itu sendiri juga harus prima.
Contoh
6197
adalah di urutan karena setiap multi-digit substring di6197
Perdana, yaitu:61
,19
,97
,619
,197
,6197
(itu sendiri).- Perhatikan bahwa
6
ini bukan bilangan prima tetapi6197
masih dalam urutan karena6
bukan merupakan substring multi-digit6197
. 8
juga dalam urutan karena setiap substring multi-digit8
adalah prima. Tidak ada substring multi-digit8
, jadi ini adalah kasus kebenaran kosong .
Spesifikasi
- Celah standar berlaku, kecuali Anda diizinkan untuk membuat hardcode output atau menyimpan informasi yang terkait dengan output dalam program Anda.
- Angka-angka dalam output dapat dalam urutan apa pun .
- Angka-angka dalam output diperbolehkan memiliki duplikat.
- Anda dapat menggunakan pemisah apa pun , jika Anda memilih untuk mencetak alih-alih output.
- Anda diizinkan untuk awalan dan / atau keluaran postfix jika Anda memilih untuk mencetak alih-alih keluaran.
- Pemisah dan awalan dan postfix mungkin tidak mengandung digit apa pun (U + 0030 hingga U + 0039).
Daftar lengkap (58 item)
1
2
3
4
5
6
7
8
9
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
113
131
137
173
179
197
311
313
317
373
379
419
431
479
613
617
619
673
719
797
971
1373
3137
3797
6131
6173
6197
9719
Referensi
- OEIS A131648 (daftar tidak lengkap)
Seperti biasa, jangan ragu untuk menanggapi apa pun yang harus saya jelaskan di komentar.
Jawaban:
Brachylog , 18 byte
Cobalah online!
Jadi ... apakah saya siap untuk "karunia" ? : D
sumber
05AB1E ,
1513 byteKode:
Penjelasan:
Menggunakan pengkodean CP-1252 . Cobalah online! (mungkin butuh beberapa detik).
sumber
Brachylog ,
1817151615 byteCobalah online!
-1 byte setelah diskusi dengan Fatalize menginspirasi saya untuk hanya melihat apa yang terjadi jika saya menukar
l
dan<
sekitarnya.Predikat ini menghasilkan output melalui variabel input, selama variabel output dibiarkan tidak dibatasi. Karena duplikat diperbolehkan, setiap angka dihasilkan dengan multiplisitas sama dengan 2 pangkat dari jumlah digitnya yang merupakan bilangan prima.
Versi yang lebih lama:
sumber
8ḟ⟦₁{sᶠ{Ḋ|ṗ}ᵐ&}ˢ
Brachylog , 18 byte
Solusi Brachylog lainnya. Saya tidak bisa lebih pendek dari solusi Brachylog Erik The Outgolfer; panjangnya persis sama, tetapi mendekati generasi dari arah yang berlawanan.
Sepertinya Unrelated String telah mengalahkan ini oleh banyak karakter, yang saya ucapkan selamat.
Penjelasan:
Cobalah online!
sumber
Jelly , 17 byte
Jawaban Jelly pertamaku! Disimpan 3 byte berkat @Leaky Nun !
Cobalah online
Penjelasan:
sumber
RÇÐf
dapat diganti denganǀT
.ṖÐfḌÆP€
dapat diganti denganḌḟDÆP
.Java 8, 182 byte
Port C (gcc) jawaban gastropner , jadi pastikan untuk meningkatkan jawabannya!
Cobalah online.
Penjelasan:
sumber
PowerShell v2 +,
107104 bytePeringatan: Agak Lambat
Loop dari
11
ke1e4
(yaitu,10000
) dan menarik nomor menggunakanWhere-Object
pemilih (|?{...}
). Klausa ini adalah dua komponen - loop pertama dari11
hingga ke nomor saat ini dan digunakanWhere-Object
untuk menarik keluar angka-angka yang membentuk substring dari nomor saat ini (melalui-match
operator regex). Kami menyimpan substring tersebut di$x
. Bagian kedua loop melalui$x
dan digunakanWhere-Object
untuk menarik semua bilangan prima menggunakan regex utama . Kami kemudian mengambil.count
keduanya dan cek sebenarnya apakah keduanya-eq
ual. Misalnya,971
akan memiliki$x = (71,97,971)
dan masing-masing adalah prima, begitu3-eq3
juga$TRUE
dan dengan demikian971
akan dipilih.Hasil itu adalah array-concatenated dengan suatu range
1..10
. Array yang dihasilkan ditinggalkan di pipeline dan output tersirat, dengan baris baru antara elemen secara default.sumber
Japt , 15 byte
Menguji
sumber
C (gcc) ,
144142140136134132 byteTerima kasih kepada Kevin Cruijssen. -2 Berkat ceilingcat
... Dan terinspirasi oleh itu, kita bisa mendapatkan 2 byte lagi dari itu untuk loop.
Juga tanpa malu-malu menandai checker utama yang agak lebih baik dari jawaban Kevin Cruijssen untuk -4 lainnya.
Cobalah online!
sumber
||n<10
bisa|n<10
danfor(n=1;n<1e4;n++)
bisafor(n=0;++n<1e4;)
untuk -2 byte.Malbolge Unshackled (varian rotasi 20-trit), 2,5254e7 byte atau 1,9809e7 byte
Ukuran jawaban ini melebihi ukuran program maksimum yang dapat diposkan (eh), jadi kodenya terletak di repositori GitHub saya (catatan: Jangan menyalin kode menggunakan CTRL + A dan CTRL + C, cukup klik kanan dan klik "Simpan elemen tujuan sebagai. .. ").
Bagaimana cara menjalankannya?
Ini mungkin bagian yang sulit, karena juru bahasa Haskell yang naif akan membutuhkan waktu lama untuk menjalankannya. TIO memiliki juru bahasa Malbogle Unshackled yang layak, tetapi sayangnya saya tidak akan dapat menggunakannya (batasan).
Yang terbaik yang bisa saya temukan adalah varian lebar rotasi 20-trit, yang berkinerja sangat baik.
Untuk membuat penerjemah sedikit lebih cepat, saya telah menghapus semua cek dari penerjemah Malbolge Unshackled milik Matthias Lutter.
Catatan kinerja
Aplikasi berjalan sekitar 40 menit pada mesin saya, menghasilkan nomor HEX dari urutan. Saya menghentikannya sekitar satu jam perhitungan, dan selesai pada 0x11.
Perhatikan jawaban ini berbeda dari yang lain, karena yang ini benar-benar menghitung angka, dan dapat dibuat sehingga menghitungnya tanpa batas.
Aplikasi mengalokasikan buffer spinup, yaitu sekitar 7 gigabytes besar, jadi lebih baik siapkan RAM gratis Anda.
Varian alternatif
Varian alternatif menggunakan memori sekitar 2 gigabita lebih sedikit, tetapi menghasilkan output dalam bentuk karakter ASCII (0 = ASCII (0x0), 10 = baris baru, dll ...), dan tersedia di sini . Itu tidak bersaing, karena persyaratan tantangan
sumber
Python 3 , 118 byte
Cobalah online!
Penjelasan
Peringatan: tidak ada string aktual yang terlibat dalam solusi ini.
sumber
Ruby, 81 + 8 = 89 byte
+8 byte untuk
-rprime
.Lihat di repl.it: https://repl.it/CniR/2
sumber
Perl 6 ,
47 4443 bytePenjelasan:
sumber
C #,
261249247 byteDisimpan 12 byte berkat Leaky Nun
Ini mengkompilasi ke a
Func<List<int>>
.Versi yang diformat seperti:
sumber
false
atautrue
, gunakan0>1
dan0<1
Cepat 4 , 144 byte
Cobalah online!
Penjelasan
sumber
JavaScript (Node.js) , 130 byte
jika saya dapat mengasumsikan tumpukan terbatas
i*i<=n&&
dapat dihapus dani*i>n
bergantiani>=n
yang mengurangi kode dengan 9 byte dan mungkin mengkonversi fungsi utama untuk rekursif: https://tio.run/##LYpBDoIwEEX33AMyAxVbXUmccgX2xkWDRYeQaSPqyrvXkrj5ef/lze7j1vHJ8bWTcPMpTQRMWjm6XJFs0/DZ@EM/ASunBmCsKtfG9/rIiJ0rIoEoJpNbKXPdx@1jx5akGEiytqdNYp2nNFr / wR @ xHkD2Rn81dpLGIGtYfLuEO0yAmH4 (119 byte)Cobalah online!
sumber
Malbolge , 1361 byte
Versi sederhana dan membosankan. Menampilkan angka dari yang tertinggi.
Cobalah online!
sumber
TI-83/84 BASIC, 124 Bytes
Loop atas bilangan bulat 10k pertama. Menyiapkan penghitung di N untuk memeriksa setiap prime substring, dan int (log (A mengambil satu kurang dari jumlah digit dalam jumlah saat ini. Kami kemudian mengatur angka itu ke dalam variabel kedua sehingga kami dapat langkah P turun melalui setiap panjang substring setidaknya 2 digit .10 ^ ... dan AnsfPart (iPart (,,, menghasilkan substring saat ini untuk memeriksa primality, maka 3 baris berikut melakukan pemeriksaan primality ke 1 atau 0 di Ans. Jika substring tidak prima , kami menambah N, dan setelah semua substring diperiksa jika N masih 0 kami mencetak nomor saat ini.
Mungkinkah beberapa penyesuaian dapat dilakukan untuk meningkatkan efisiensi pemeriksaan awal terhadap tes ini? Saya senang saya menemukan algoritma dalam byte yang lebih sedikit daripada menyimpan output secara langsung dalam format TI-83!
sumber
Python 3.8 (pra-rilis) , 194 byte
Cobalah online!
sumber
PHP , 135 byte
Cobalah online!
sumber