Mengingat kata, memperlakukan setiap surat nomor itu dalam alfabet bahasa Inggris (jadi a
menjadi 1, b
menjadi 2, z
menjadi 26 dan seterusnya), dan periksa apakah semua dari mereka, termasuk duplikat, yang berpasangan coprime .
Inputnya persis satu kata huruf Inggris kecil. Keluarannya adalah fakta jika kata itu coprime: nilai kebenaran / falsey apa pun, tetapi hanya dua varian di antaranya. Celah standar dilarang.
Kasus uji:
man
:True
day
:True
(terima kasih kepada Ørjan Johansen)led
:False
(l=12
dand=4
sudahgcd=4
)mana
:True
(meskipuna
terjadi beberapa kali, 1 dan 1 adalah koprimes)mom
:False
(gcd(13,13)=13)
)of
:False
(terima kasih kepada xnor; meskipun15∤6
,gcd(15,6)=3
)a
:True
(jika tidak ada pasangan huruf, perlakukan kata itu sebagai koprime juga)
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
code-golf
decision-problem
number-theory
primes
bodqhrohro
sumber
sumber
0
jika mereka adalah koprime dan1
jika tidak?day: True
of: False
untuk memiliki contoh palsu di mana tidak ada nilai yang merupakan kelipatan dari yang lain.Jawaban:
Bahasa Wolfram (Mathematica) , 36 byte
Cobalah online!
Bahasa Wolfram (Mathematica) , 33 byte
Cobalah online!
sumber
CoprimeQ@@(ToCharacterCode@#-96)&
lebih pendek tiga byte.Jelly , 10 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Haskell , 48 byte
Cobalah online!
Sangat mudah: mengubah string ke daftar angka dan kemudian memeriksa apakah produk tersebut sama dengan LCM.
sumber
Pyth , 9 byte
Suite uji
Penjelasan:apakah Pyth baru saja mengalahkan Jelly?
sumber
Python 2 -
122118 byte-4 byte terima kasih kepada @JonathanAllan
Ini benar-benar mengerikan, tetapi saya telah menghabiskan waktu terlalu lama untuk tidak memposting ini.
Cobalah secara Online
sumber
96 for
~>96for
;lambda x,y:x*y
~>int.__mul__
.05AB1E , 11 byte
Cobalah online!
Penjelasan
sumber
Θ
benar-benar diperlukan?Brachylog , 11 byte
Cobalah online!
Penjelasan
sumber
Python 2 ,
776864 byteCobalah online!
Pada dasarnya, (beberapa pasangan dalam input tidak co-prime) jika dan hanya jika (ada angka i> 1 yang membagi lebih dari satu input).
sumber
all
dan<2
meskipun?Python 3 ,
6159 byteMenggunakan byte python sebagai argumen:
Pembagi terakhir untuk memeriksa adalah 23, prime terbesar di bawah 26.
Cobalah online!
Terima kasih kepada @Dennis karena telah menghemat dua byte.
sumber
c%96%x<1for c in s
menghemat 2 byte.Perl 6 ,
3432 byte-2 byte terima kasih kepada nwellnhof
Cobalah online!
Kode kunci anonim yang mengambil string dan mengembalikan Benar atau Salah. Jika kelipatan umum terendah dari surat-surat tersebut sama dengan produk dari surat-surat itu daripada mereka tidak berbagi pembagi umum.
Penjelasan:
sumber
a
untuk0
lolday
.J, 36 byte
Tidak disatukan
Penjelasan
Cobalah online!
sumber
[:(1=[:*/+./~#&,~#\~:/#\)_96+a.&i.
for 34 bytes Anda mendapat spasi di `1 = ':)JavaScript (Node.js) , 60 byte
Cobalah online!
Buffer
dari Shieru Asakoto 's posting .sumber
every(c=>c%32%v||n--,n=1)
.Jelly , 11 byte
Cobalah online!
sumber
ỊẠ
membalik Boolean.MATL , 10 byte
Keluaran
1
untuk koprime,0
jika tidak.Cobalah online! Atau verifikasi semua kasus uji .
Penjelasan
Pertimbangkan input
'man'
misalnya.sumber
Algoritma Markov, sebagaimana ditafsirkan oleh eMain (
474484463 bytes,767876 aturan)17 aturan pertama memasukkan faktor "huruf gabungan" menjadi faktor "huruf utama" mereka, mengabaikan keberagaman. (Misalnya,
t
menjadibe
karena 20 faktor sebagai produk dari kekuatan 2 dan kekuatan 5.)36 aturan berikutnya (seperti
cb->bc
) mengurutkan faktor utama yang dihasilkan.9 aturan berikutnya (seperti
bb->F
) menggantikan faktor prima yang diulangiF
, kemudian 9 aturan lainnya (sepertib->
) menyingkirkan huruf tunggal yang tersisa.Pada titik ini, kami memiliki string kosong, atau string satu atau lebih
F
, dan aturan terakhir->!T
menambahkan a!T
di awal. Kemudian aturanFF->F
danTF->F
sederhanakan hasilnya ke salah satu!T
atau!F
. Pada titik ini,!->.
aturan berlaku, memberitahu kita untuk menyingkirkan!
dan berhenti: kembaliT
untuk kata coprime, danF
sebaliknya.(Terima kasih kepada bodqhrohro untuk menunjukkan bug di versi sebelumnya yang menyebabkan kode ini memberikan string kosong pada input
a
.)sumber
T
atauF
dia
testcase.Python 3 ,
9089 byte-1 byte oleh numbermaniac
Cobalah online!
Gunakan sebagai
f(*'man')
.sumber
Retina 0.8.2 , 45 byte
Cobalah online! Penjelasan:
Masukkan pemisah antara setiap huruf dan pada awal dan akhir.
Berlaku a
#
ke setiap huruf.Pindahkan setiap huruf 1 ke belakang dalam alfabet, hapus huruf
a
s. Kemudian ulangi operasi di atas sampai semua huruf telah dihapus. Ini mengubah setiap huruf menjadi indeks alfabet berbasis 1 di unary.Uji apakah ada dua nilai yang memiliki faktor umum lebih besar dari 1. (Ini dapat menemukan lebih dari satu pasang huruf dengan faktor umum, misalnya dalam kata
yearling
.)Pastikan tidak ada faktor umum yang ditemukan.
sumber
Pustaka R + pracma, 75 byte
function(w){s=utf8ToInt(w)-96;all(apply(outer(s,s,pracma::gcd),1,prod)==s)}
Saya menggunakan
gcd
fungsi dipracma
perpustakaan untuk pengetahuan saya R tidak memiliki built-in untuk itu. Saya menggunakan pendekatan membandingkan produk gcds dengan angka itu sendiri.65 byte (kredit: @ Joe)
function(w)prod(outer(s<-utf8ToInt(w)-96,s,pracma::gcd))==prod(s)
sumber
Japt , 14 byte
Cobalah online!
Mengambil input sebagai array karakter.
Bagaimana itu bekerja
sumber
Ruby , 56 byte
Cobalah online!
sumber
Java 10, 86 byte
Port of @Vincent 's Python 3 menjawab .
Cobalah online.
Penjelasan:
sumber
Japt, 13 byte
Mengambil input sebagai array karakter.
Cobalah atau verifikasi semua kasus uji
sumber
q,
121111 bytesumber
JavaScript (Node.js) ,
8782 byteCobalah online!
Pendekatan asli (87B)
Cobalah online!
sumber
Stax , 16 byte
Jalankan dan debug itu
Penjelasan
Output 1 untuk Benar, 0 Untuk salah.
Mungkin ada cara yang lebih baik untuk melakukan konversi ke nomor bagian, tetapi berhasil.
sumber
2SOF{96-F:!*
Beri tahu saya jika Anda ingin tahu lebih banyak tentangnya. Yang pertama gratis!APL (NARS), 16 karakter, 32 byte
Ini menggunakan metode lain yang digunakan bahwa LCM () = × /, itu cepat tetapi meluap jika input array cukup panjang; solusi alternatif lain sedikit lebih lambat:
ini di bawah ini tampaknya 10 kali lebih cepat (atau +) daripada fungsi di atas
saya lebih suka yang terakhir ini karena lebih mudah, lebih cepat, dapat dipercaya (karena possiblity kurang melimpah), lebih mudah untuk menulis, dan bagaimana itu harus (bahkan jika memiliki beberapa byte lebih ...)
sumber