Mari kita buat kisi N × N spasi dan garis bawah yang dapat digunakan untuk menentukan secara visual apakah suatu bilangan prima. (N dapat berupa bilangan bulat positif.)
Grid ini memiliki tiga aturan sederhana:
- Kolom ke-n berisi pola berulang garis bawah n-1 diikuti oleh satu spasi. Pola ini dimulai pada baris pertama dan dihentikan, mungkin pola menengah, di baris N. (Baris dan kolom diindeks 1).
- Kolom pertama diganti dengan semua garis bawah, bukan semua spasi.
- Jika spasi terjadi di suatu tempat indeks baris sama dengan indeks kolom itu diganti dengan garis bawah.
Contoh: N = 10
1
1234567890 <-- column indices
1__________
2__________
3__________
4_ ________
5__________
6_ _______
7__________
8_ _ ______
9__ _______
10_ __ _____
^ row indices
Indeks hanya untuk kejelasan. Grid polos itu sendiri (apa yang harus dihasilkan oleh program Anda) adalah:
__________
__________
__________
_ ________
__________
_ _______
__________
_ _ ______
__ _______
_ __ _____
Perhatikan itu:
- Kolom pertama adalah semua garis bawah.
- Kolom kedua adalah spasi garis bawah, ruang garis bawah, dll., Kecuali untuk garis bawah pada baris 2.
- Kolom ketiga bertuliskan garis bawah garis bawah, garis bawah garis bawah, dll., Kecuali garis bawah pada baris 3.
- dll.
Perhatikan juga bahwa selain 1, hanya baris bernomor prima yang memiliki garis bawah di setiap kolom.
Karena garis bawah membentang di seluruh lebar font, setiap baris bilangan prima membentuk garis solid kontinu. Jadi memeriksa apakah suatu bilangan prima atau tidak cukup mudah secara visual; cukup periksa apakah garisnya padat di semua kolom. (Kenyataannya melihat ke akar kuadrat dari indeks baris sudah cukup tetapi menghasilkan kisi itu tampak kurang elegan.)
Program
Tulis program yang akan menggambar kisi-kisi ini dengan N melalui stdin (atau alternatif terdekat). Output menuju ke stdout (atau alternatif terdekat) dan seharusnya hanya berisi spasi, garis bawah, dan baris baru, dengan baris tambahan tambahan baru.
Kode terpendek menang.
n
baris th, buat k
karakter th spasi jika k
merupakan pembagi dari m
yang bukan 1 atau m
.