Apa itu Prime Square?
Kuadrat Utama adalah kuadrat di mana keempat ujungnya adalah bilangan prima yang berbeda.
Tapi yang mana?
Dan bagaimana kita membangunnya?
Berikut adalah contoh dari Prime Square 4x4
1009
0 0
3 0
1021
Pertama kita mulai dari sudut kiri atas. Kami bekerja searah jarum jam .
Kami memilih bilangan prima terkecil yang memiliki 4
angka 1009 .
Maka kita membutuhkan bilangan prima terkecil yang memiliki 4
digit, yang dimulai dengan a 9
. Ini adalah 9001
Bilangan prima ketiga (4 digit) harus memiliki 1
digit terakhir (karena 9001 diakhiri dengan 1
)
dan juga menjadi prime 4 digit terkecil dengan properti ini yang belum pernah digunakan sebelumnya sebagai edge .
Bilangan prima ini adalah 1021
Bilangan prima keempat harus memiliki 4
digit, mulai dengan 1
(karena 1009 dimulai dengan a 1
) dan diakhiri dengan 1
(karena 1021 dimulai dengan a 1
)
Bilangan prima 4 digit terkecil dengan properti ini yang belum pernah digunakan sebelumnya sebagai edge adalah 1031
Tugas Anda
Anda akan diberi bilangan bulat n
dari 3 to 100
Angka ini akan menjadi dimensi n x n
kotak.
Maka Anda harus menampilkan kotak ini persis dalam bentuk kasus uji berikut
Uji Kasus
n=3
Output
101
3 0
113
n=5
Output
10007
0 0
0 0
9 0
10061
n=7
Output
1000003
0 0
0 0
0 0
0 0
8 1
1000037
n=10
Output
1000000007
0 0
0 0
0 0
0 0
0 0
0 0
1 0
8 0
1000000021
n=20
Output
10000000000000000051
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
9 8
10000000000000000097
- Input dan output dapat diberikan dengan metode apa pun yang mudah .
- Anda dapat mencetaknya ke STDOUT atau mengembalikannya sebagai hasil fungsi.
- Program lengkap atau fungsi dapat diterima.
- Berapapun jumlah ruang kosong asing dapat diterima, asalkan angkanya sesuai
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
EDIT
Ini mungkin untuk semua n
Berikut adalah bilangan prima untukn=100
1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000289
9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000091
1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000711
1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002191
Dan bagi Anda yang Anda tidak berpikir ini mungkin di sini SEMUA kasus uji
n
: P? Bukan masalah dengan tantangan, hanya penasaran.n
: untukn
= 1, kami tidak dapat memenuhi batasan bahwa keempat tepi adalah bilangan prima yang berbeda, sedangkan untukn
= 2, kami dipaksa untuk memilih 11,13,23, di mana titik tepi akhir adalah 12 yang merupakan komposit. Saya tidak punya bukti bahwa itu mungkin untuk semuan
> 2, tetapi akan terkejut untuk mengetahui sebaliknya: secara informal, semakin banyak angka, semakin banyak "ruang gerak" ada untuk memenuhi kendala.n
setidaknya ada dua bilangan prima panjangn
dimulai dengan 1 dan berakhir dengan masing-masing digit (maka kita dapat memilih tepi bawah) dan setidaknya ada tiga bilangan prima dimulai dengan 1 dan berakhir dengan 1 (maka kita dapat memilih tepi kiri).Jawaban:
05AB1E ,
646356534846 byte-1 byte terima kasih kepada @ Mr.Xcoder
-5 byte terima kasih kepada @Grimy .
Penjelasan:
Lihat ini 05AB1E ujung tambang (bagian Cara kompres bilangan bulat besar? ) Untuk memahami mengapa
Ž9¦
adalah2460
. Dan lihat tip 05AB1E milik saya ini untuk memahami bagaimana kuadrat di-output denganΛ
kanvas bawaan.NĀiR}¦
I¯JŽ9¦SΛ
n=4
[1009,9001,1021,1031]
[1009,"001","201","301"]
Λ
I
¯J
"1009001201301"
n=4
Ž9¦S
[2,4,6,0]
[→,↓,←,↑]
sumber
4F°ÅP¯KIù.Δ1sЮθÅ¿Š®θÅ?Šθ)¯gè}©ˆ}ð¯2ô`€R«€¦J«Ž9¦SΛ
49:°ÅPIùć4FÐN1›iR}¦ˆθUKD.ΔÐθsXÅ?‚sXÅ¿ª¯gè]Ið¯J«Ž9¦SΛ
48:°ÅPIùćÐ4FˆθUKD.ΔÐθsXÅ?‚sXÅ¿ª¯gè}ÐNĀiR}¦}I¯JŽ9¦SΛ
ÐθsXÅ?‚sXÅ¿ª
keθyXÅ?yXÅ¿)
. Tidak begitu yakin mengapa)
bekerja dalam lingkup loop, karena saya akan berharap untuk membungkus daftar utama juga ke dalam daftar di iterasi pertama. Tetapi bahkan tanpa itu, penggunaanyy
bukannyaÐss
masih menghemat 1 byte. :)05AB1E ,
35333231 byte-1 byte terima kasih kepada Kevin Cruijssen
Cobalah online!
Penjelasan:
sumber
Θ
atNΘ
. Hanya1
kebenaran di 05AB1E, jadiif N
danif N == 1
sama.Θi
adalah setara 05AB1E dariif (cond == true)
...Θ
masih dapat berguna jika Anda ingin mengkonversi segala sesuatu kecuali1
untuk0
. Tetapi untuk if-statementi
, itu tidak benar-benar diperlukan seperti kodesemu Anda== true
.JavaScript (ES8),
205 ... 185 177173 byteCobalah online!
Bagaimana?
Langkah # 1: menghitung 4 bilangan prima
Langkah # 2: memformat output
sumber
Jelly ,
8982 byteCobalah online!
Jelas bisa menjadi pemain golf, tetapi bekerja secara efisien untuk jumlah besar.
sumber
Jelly , 59 byte
Cobalah online!
Jawaban Jelly lebih pendek tapi jauh lebih efisien.
sumber
JavaScript, 484 byte
Fungsi tanpa nama terakhir mengembalikan seni ASCII.
Kode asli
Kompleksitas waktu terbaik dan rata-rata: Ω (100 n n) dalam notasi omega besar Knuth (n langkah untuk mengurangkan angka n digit, 10 n substraksi per pemeriksaan pembagian, 10 n pemeriksaan keterbagian untuk cek utama, dan Ω (1) pemeriksaan perdana selesai ).
Kompleksitas waktu terburuk: Ω (1000 n n) dalam notasi omega besar Knuth (n langkah untuk mengurangkan angka n digit, 10 n substraksi per pemeriksaan pembagian, 10 n pemeriksaan keterbagian untuk cek prima, dan 10 n pemeriksaan perdana selesai).
Saya kira
n=100
membutuhkan sekitar 10 203 perhitungan.Sidenote: Saya memvalidasi sintaks menggunakan UglifyJS 3, dan itu bermain golf dengan cara yang lebih baik daripada saya, menghemat 47,13% lebih banyak dan menghasilkan 282 byte. Namun, saya memutuskan untuk tidak membuat skor saya karena saya merasa itu curang.
Itu hanya menghapus fungsi terakhir karena tidak pernah digunakan. Ini benar-benar menjadi lebih buruk jika ditugaskan dan tidak dihapus, termasuk kode tambahan yang saya tambahkan.
sumber