Ini jawaban-chaining tantangan secara resmi berakhir, sehingga kemenangan dari Gandum Wisaya , dengan total 7 jawaban. Semua jawaban lain diterima, tetapi tidak akan memengaruhi jawaban yang diterima untuk tantangan ini, maupun pemenangnya.
Tugas:
Cetak semua pembagi positif dari nomor yang x
diambil sebagai input.
Memasukkan:
Satu angka x
yang merupakan angka (dalam basis 10) yang pembagi positifnya harus dihitung.
Keluaran:
Semua pembagi positif x
. Format diperbolehkan, termasuk \n
, ,
, ;
dan spasi sebagai pemisah, asalkan itu bisa dimengerti. Outputnya juga bisa berupa array Integer atau Strings (misalnya:) [1, 2, 3, 5, 30]
. Anda dapat menampilkan pembagi untuk stdout, konsol atau yang setara dalam bahasa Anda atau mereka dapat dikembalikan dari suatu fungsi .
Aturan
- Seorang pengguna tidak boleh menjawab dua kali berturut-turut
- Jawaban Anda dapat menghapus, menambah atau mengganti paling banyak 15 karakter dari jawaban sebelumnya (spasi tidak dihitung), selain untuk Jawaban 2 yang dapat "mengubah" hingga 20 karakter untuk memulai sesuatu
- Anda tidak diperbolehkan memposting jawaban dalam bahasa pemrograman yang sudah memiliki jawaban, kecuali versi bahasa yang sama sekali berbeda (misalnya: Jika saya mengirim jawaban
Python 2.7
, Anda dapat mengirimkan jawabanPython 3
, tetapi tidak dalamPython 2.6
) - Celah standar tidak diperbolehkan
- Anda tidak diperbolehkan menggunakan built-in untuk mendapatkan pembagi , demi tantangan ini
- Anda harus memasukkan nomor jawaban dan nama bahasa dalam judul pertanyaan dan jumlah karakter yang berubah dari jawaban sebelumnya
Mencetak gol
Pengguna dengan kiriman terbanyak setelah barang diselesaikan menang. Dalam kasus seri, pengguna dengan skor tertinggi pada salah satu jawaban mereka menang. Jika ada skor pada skor juga, maka pengguna dengan pengajuan tertua (jawaban skor tertinggi tertua) akan dinyatakan sebagai pemenang.
Catatan: "menyelesaikan" <=> 7 3 hari telah berlalu sejak jawaban terakhir dikirimkan
Contoh:
Input, Output:
14 => [1, 2, 7, 14]
25 => [1, 5, 25]
65 => [1, 5, 13, 65]
114 => [1, 2, 3, 6, 19, 38, 57, 114]
Atau output setara lainnya yang memenuhi kondisi yang disebutkan.
Catatan Akhir : Pertanyaan ini lebih baik jika Anda mengurutkan jawaban berdasarkan yang terlama. Saya akan memposting jawaban pertama dengan Python 2.7, jadi Anda harus memposting jawaban kedua tergantung pada yang itu. Semoga berhasil dan selamat bersenang - senang!
Papan peringkat:
Daftar ini mungkin kedaluwarsa, bebas diedit:
1) Wheat Wizard [Pemimpin Sekarang 🏆] : 7 jawaban - Python 1.6 , 05AB1E , Sebenarnya , Del | m | t , WSF , Brain-Flak , Bahasa
2) Riley: 3 jawaban - Serius , CJam , 2sable
3) Jonathan Allan: 2 jawaban - Python 3 , Jelly
3) ETHproduksi: 2 jawaban - Japt , Pyth
3) Mistah Figgins: 2 jawaban - Befunge-98 , Brain-Flak Classic
6) Riker: 1 jawaban - MATL
6) dzaima: 1 jawaban - SOGL 0.8.2
6) LegionMammal978: 1 jawaban - Whitespace
6) Nick Clifford: 1 jawaban - Ohm
6) Lynn: 1 jawaban - GolfScript
6) MickyT: 1 jawaban - Cubix
Kalkulator jarak
Anda dapat menggunakan potongan ini untuk menghitung jarak antara dua entri:
function L(s,t){if(s===t)return 0;var S=s.length,T=t.length;if(S*T===0)return S+T;for(var i=0,v0=[],v1=[];i<=T;i++)v0[i]=i;for(i=0;i<S;i++){v1[0]=i+1;for(var j=0;j<T;j++)v1[j+1]=Math.min(v1[j]+1,v0[j+1]+1,v0[j]+(s[i]!=t[j]));for(j=0;j<=T;j++)v0[j]=v1[j]}return v1[T]}
<textarea id=A rows=10></textarea><textarea id=B rows=10></textarea><br>
Distance: <span id=O>0</span> <button onclick="O.innerHTML=L(A.value.replace(/\s/g,''),B.value.replace(/\s/g,''))">Run</button>
sumber
Jawaban:
Jawaban 20, Brain-Flak , 11
Saya ingin meluangkan waktu untuk mengucapkan terima kasih kepada semua orang yang telah membantu berkontribusi untuk tujuan ini:
Riley, 20 byte
LegionMammal, 15 byte
ETHproduksi, 11 byte
Lynn, 1 byte
Pengguna berikut tidak dapat berkontribusi byte secara langsung tetapi memang membantu dengan cara lain:
Figah Mistah
DJMcMayhem
feersum
Terima kasih semuanya telah memungkinkan ini!
Cobalah online!
sumber
Jawaban 3: MATL, Jarak 15
sumber
%
membuatnya sangat sulit untuk melanjutkan. Semoga sukses untuk yang lain dan saya sangat berharap tantangan ini tidak akan "mati" di sini!Z\
. Kode yang relevan di sini adalah:tGw\~)
(yang saya tulis di chat, bukan builtin)Z\
, bukan\
, adalah "pembagi". Judul dalam tiga kolom terakhir menunjukkan awalan (X
,Y
, atauZ
).\
dengan sendirinya adalah kolom pertama, yaitu "mod"Jawaban 7, Japt, 15
Cobalah online!
Diubah
#b∫I:b;\?t
menjadiò f!vU
(10 poin) dan menambahkan beberapa kode Brain-Flak dengan mengubah~(()
ke((()<>))
(5 poin). Saya percaya kode yang sedang kami kerjakan adalahPenjelasan
sumber
Jawaban 8, 05AB1E , 14
Cobalah online!
Penjelasan
Untungnya 05AB1E memiliki interpreter Python bawaan. Untuk menjalankan ini, kami mendorong
sebagai string ke atas tumpukan. Kita harus menggunakan string literal alih-alih komentar di sini karena 05AB1E benar-benar tidak suka komentar dalam kode Python-nya. Kita juga harus menyingkirkan
"
kode asli karena menyebabkan string berakhir sebelum waktunya.Setelah string ditekan, kita gunakan
.e
untuk mengeksekusinya sebagai kode python.Bekerja menuju Brain-Flak
Saya dapat menambahkan 5 karakter tambahan untuk tujuan membuat jawaban Brain-Flak. Saya akan bisa menambahkan 6 tetapi sayangnya saya lupa spasi tidak dihitung menuju skor poin.
Sejauh ini kami memiliki:
sumber
Jawaban 13, Pyth , 15
Cobalah online!
Penjelasan
Jadi saya tidak tahu banyak Pyth, tetapi yang saya tahu adalah bahwa kode sumbernya dalam bentuk pohon, setiap perintah mengambil sejumlah argumen di sebelah kanannya. Pohon program pembagi yang saya tulis terlihat seperti ini:
Q
adalah input.f
mengambil dua argumen,F
danA
, dan mengembalikan itemT
diA
manaF(T)
mengembalikan nilai yang sebenarnya. Dalam hal ini,F
adalah fungsi yang mengembalikan logika NOT dariQ%T
, danA
adalahSQ
, yang menciptakan rentang[1...Q]
. Ini memiliki efek penyaringan hanya bilangan bulatT
di[1...Q]
manaQ%T == 0
.Untuk menghindari parsing sisa kode, semuanya dibungkus dalam string, kemudian
|Q"...
mengembalikan OR logisQ
dan string. KarenaQ
selalu positif, selalu benar, dan dengan demikian selalu dikembalikan dari OR logis.Bekerja menuju Brain-Flak
sumber
Jawaban 16, GolfScript, 15
Cobalah online!
Saya menambahkan
~:),(;{\%!},p#
, menggunakan baris baru sebagai nama variabel agar sesuai dengan batasan ukuran, dan memadatkan seluruh program kembali ke satu baris untuk berkomentar. Ini jarak 14. Kemudian, saya menambahkan{
sebelumnya}printdiv
untuk Brain-Flak.Bekerja menuju Brain-Flak
sumber
Jawaban 17, CJam , 15
Cobalah online!
Bekerja menuju Brain-Flak (30 pergi)
sumber
)({}(((
ke()({})((
pada biaya hanya dua, ini bukan program yang tepat yang kami pikirkan tapi()
dan({})
keduanya tidak ada-ops dalam konteks ini.Jawaban 4 - Jelly , 4
Cobalah online!
Kode yang relevan:
The
)
bertindak sebagai istirahat antara link sejauh parser yang bersangkutan (saya percaya).Built-in akan
ÆD
, sebagai gantinya ini menciptakan rentang dari1
ke input denganR
, memeriksa keterpisahan dengan input denganḍ⁸
, kemudian mengembalikan daftar indeks berbasis satu yang benar denganT
.sumber
Jawaban 9, Ruang Putih, 15
Di mana
<SPACES>
diganti oleh string berikut, di manaT
0x09,L
adalah 0x0A, danS
0x20:Baris baru literal ditambahkan untuk kejelasan. Memperhatikan bahwa aturan hanya menentukan karakter non-spasi putih. Tidak, tidak bisa menahan diri.
Bekerja menuju Brain-Flak
Saya tidak tahu apa yang terjadi sebelumnya, jadi sekarang kami memiliki:
sumber
Jawaban 18, WSF , 15
(Ini membutuhkan input dan output melalui kode karakter)
Penjelasan
WSF pada dasarnya adalah brainfuck kecuali ia menggunakan spasi alih-alih set operator yang biasa. Berikut adalah kode yang didekompilasi menjadi brainfuck:
Kemajuan menuju Brain-Flak
Karena WSF hanyalah spasi putih, saya dapat menambahkan 15 karakter lagi ke kode Brain-Flak. Ini membuat kami berada pada 15 dari jawaban, jadi jangan ragu untuk mempostingnya.
Karena saya tidak akan memposting jawaban Brain-flak sendiri, saya pikir saya akan meluangkan waktu untuk berterima kasih kepada semua orang yang telah membantu berkontribusi untuk tujuan ini:
Riley, 16 byte
LegionMammal, 15 byte
ETHproduksi, 11 byte
Lynn, 1 byte
Pengguna berikut tidak dapat berkontribusi byte secara langsung tetapi memang membantu dengan cara lain:
Terima kasih semuanya telah memungkinkan ini!
sumber
Jawaban 19, 2sable , 15
Cobalah online!
Saya menghapus spasi putih, membungkus semua yang ada sebelumnya menjadi string, lalu:
sumber
Jawaban 21, Cubix , 15
Akhirnya berhasil masuk ini :) Untungnya setelah jawaban Brain-Flak selesai, karena saya pikir saya akan terhalang. Membutuhkan 15 penuh untuk diimplementasikan.
Ini memetakan ke kubus berikut
Kamu bisa mencobanya di sini , tetapi Anda harus menempelkannya. Saya menduga beberapa spesial menyebabkan masalah untuk permalink.
Kode ini pada dasarnya lebih dari 2 baris. Bagian penting adalah:
I s )
Ini mendapat input, menukar bagian atas tumpukan (0 akan bekerja juga) dan peningkatan% ?
Dapatkan mod dan uji. Jika 0 carry forward atau drop down ke redirect; O N o
Jatuhkan hasil mod dan output nomor yang diikuti dengan baris baruu
U berbelok ke garis bawahBerikut adalah dalam rangka dieksekusi
; - ! @
Keluarkan 10 dari stack, jumlah kurangi dari input, tes dan mengakhiri jika nol< ; u
Arahkan target untuk tes pertama. Buang bagian atas tumpukan (baik hasil mod atau kurangi) dan putar balik kembali ke kenaikansumber
Jawaban 6, Python 1.6, 15
Saya menghapus
%
simbol dan mengomentari baris pertama dan sedikit dari baris terakhir. Ini saja menghabiskan 10 dari 15 poin saya. Namun saya belum selesai; karena Python 1 tidak harus+=
saya gantii+=1
dengani=i+1
biaya tambahan 3 poin. Karena saya memiliki 2 sisa, saya juga menambahkan((
ke awal. Saya berencana untuk membuat pengajuan di Brain-Flak nanti dan saya perlu orangtua.sumber
Jawaban 10, Ohm , jarak 5
... di mana
<SPACES>
digantikan oleh string mengerikan dari jawaban Whitespace .Sedikit jawaban yang kurang ajar, karena yang lainnya hanyalah kawat yang tidak dieksekusi.
sumber
Jawaban 12, Serius , 15
Cobalah online!
Satu-satunya perbedaan dari jawaban Actually adalah bahwa Serius menggunakan backticks untuk menandai fungsi di mana Actually menggunakan
⌠
dan⌡
dan kami hanya membuat karakter tambahan menjadi string kemudian muncul dan buang.Bekerja Menuju Brain-Flak
sumber
Jawaban 14, Del | m | t , 15
Cobalah online!
Penjelasan
Saya benar-benar mulai menyalahgunakan fakta bahwa spasi putih tidak diperhitungkan terhadap perbedaan di sini. Del | m | t tidak terlalu peduli dengan karakter Anda, jadi sebagian besar kode adalah urutan spasi dan carriage return di awal program. Bagian kode yang terlihat tidak dieksekusi sama sekali.
Berikut adalah kode yang ditranskripsi menjadi cara yang lebih "masuk akal":
Cobalah online!
Cara kerjanya di level rendah
Untuk memulai kita sudah
O R ^ V
ini berfungsi untuk mengambil input pada loop pertama dan berfungsi sebagai no-op semua waktu lainnya.Kami kemudian gunakan
O
untuk membuat salinan input untuk nanti.@ A K T
ingat variabel yang disimpan dalam posisi memori -1 (pada awal program ini 0) danA J
menambahkannya.O @ A K U
Menyimpan nilai yang sekarang bertambah kembali ke posisi memori -1 untuk putaran berikutnya.N
menghitung mod dari salinan input yang kami buat beberapa waktu lalu dan nilainya baru diingat dari memori danR
meniadakannya.Bersama-sama
N R
membuat boolean yang menunjukkan apakah input kita dapat dibagi oleh KL atau tidak.Kami menyimpan salinan boolean ini ke ruang memori -2 menggunakan
O @ B K U
dan memanggil kembali nilai dari ruang memori -2@ A K T
.Kami menukar dua elemen teratas dengan
Q
untuk memastikan bahwa boolean berada di atas dan mengeluarkan nilai jika boolean benar menggunakan^ X
.Jika boolean itu salah, kita memiliki nilai tambahan yang perlu diberantas jadi kita ingat boolean yang kita simpan di ruang -2 dengan
@ B K T
dan pop nilai jika itu salahR ^ P
.Kami menduplikasi nilai input dengan
O
dan mengurangi nilai pada memori -1 dengan@ A K T K
. Jika ini nol, kita keluarR ^ _
.Terakhir kita memiliki
@ ^
lompatan ini berapa pun nilainya selanjutnya. Kami membutuhkan ini karena ada banyak sampah (sebenarnya hanya satu@
simbol) yang dihasilkan oleh bagian kode yang terlihat.Setelah mencapai akhir, ia kembali ke awal.
Cara kerjanya di level tinggi
Ide dasarnya adalah bahwa kita memiliki nilai yang terutama disimpan di lokasi memori -1 yang bertambah setiap kali kita mengulang. Jika nilai itu membagi input kita, kita output dan ketika keduanya sama kita mengakhiri eksekusi.
Kemajuan Menuju Flak Otak
Karena spasi tidak dihitung terhadap perbedaan, saya dapat mengubah kode tanpa menghabiskan 15 poin saya dan dengan demikian semuanya diinvestasikan ke dalam kode Brain-Flak.
Ini posisi kami saat ini.
sumber
Jawaban 15, Befunge-98, 15
Cobalah secara Online!
(Mungkin ada banyak ruang putih yang tidak perlu, tapi saya tidak bisa repot-repot untuk bermain golf sekarang)
Saya menggunakan semua 15 untuk program Befunge, jadi tidak ada perubahan pada Brain-flak kali ini.
Strategi utama saya untuk ini adalah mengirim IP secara vertikal, dan menggunakan spasi untuk mengeksekusi karakter tertentu dari kode yang sudah ada sebelumnya.
Penjelasan:
Kode yang penting untuk program Befunge adalah ini:
Yang setara dengan:
sumber
Jawaban 2 - Python 3 , 5
Cobalah online!
sumber
async
atau bawaanawait
? Apakah itu dianggap sebagai bahasa yang sama sekali berbeda?Jawaban 5 - SOGL 0.8.2 , 9
Penjelasan:
Catatan: penerjemah saat ini perlu
\n
diganti dengan¶
agar tidak menghitungnya sebagai input, tetapi parser itu sendiri menganggap keduanya dapat dipertukarkan.sumber
Jawaban 11, Sebenarnya , 15
Cobalah online!
Penjelasan
Sebenarnya memiliki builtin yang bagus
÷
untuk menemukan faktor-faktor angka, namun kami tidak diizinkan untuk menggunakan builtin tersebut.Saya mulai dengan menyimpan input ke register sehingga tidak akan terluka oleh apa yang akan terjadi. Saya melakukan ini menggunakan
╩
tetapi saya bisa dengan mudah menggunakan salah satu perintah lain yang tersedia.Lalu saya tempel kode yang sudah kita miliki (saya menghapus semua spasi karena itu mengganggu untuk bekerja dengan, saya bisa melakukan ini karena "spasi tidak dihitung"). Untungnya ini tidak melakukan apa-apa saat tumpukan kosong.
Kemudian kita memiliki sisa program
Bekerja Menuju Brain-Flak
Semua itu berhasil dan saya hanya bisa mendapatkan satu paren tambahan.
sumber
[]
dalamnya kita dapat memiliki kode Brainfcuk setelahnya. Mungkin membuka kemungkinan.23, Brain-Flak Classic, 13
Awalnya, @Wheat Wizard telah memposting kode brain-flak-classic seperti pada jawaban 22:
Ini adalah 17 karakter. Namun, saya dapat memampatkan ini dengan hanya memindahkan
{})
hak lebih lanjut dalam kode yang diusulkan untuk mendapatkannyaYang hanya 13 karakter! Jadi yang saya lakukan adalah menambah / menghapus tanda kurung untuk mendapatkan kode yang diusulkan.
Kode asli yang saya posting memiliki kesalahan ketik, diperbaiki sekarang. ( Terima kasih @WheatWizard! )
sumber
Jawaban 1 - Python 2.7
Jarak: NA - Jawaban pertama
Cobalah online!
sumber
22, Bahasa , 15
Bahasa adalah esolang yang hanya peduli tentang berapa lama program ini bukan tentang isinya. Jadi kita dapat membuat program bahasa apa pun yang kita inginkan dengan menambahkan program terakhir dengan jumlah spasi yang tepat. Bahasa dikompilasi ke dalam brainfuck jadi kami akan menggunakan kembali program brainfuck yang saya tulis beberapa waktu lalu
Saya membuat beberapa perubahan pada program utama untuk memfasilitasi jawaban di kemudian hari, tetapi hasil akhirnya terlihat seperti:
di mana
<SPACES>
mewakili 55501429195173976989402130752788553046280971902194531020486729504671367937656404963353269263683332162717880399306 karakter ruang.Apakah saya menyalahgunakan ruang putih tidak termasuk aturan? Mungkin.
Berusahalah menuju Brain-Flak Classic
Kami sudah memiliki semua orangtua itu di sana, jadi saya pikir saya akan memulai kita menuju Brain-Flak Classic.
sumber