Diberikan daftar bilangan bulat positif, output apakah setiap pasangan bilangan bulat yang berdekatan di dalamnya berbagi faktor prima. Dengan kata lain, keluaran truthy jika dan hanya jika ada dua bilangan bulat tetangga di daftar adalah co-prime.
Dalam istilah lain: diberi daftar bilangan bulat positif [a 1 a 2 ... a n ] , hasilkan apakah
gcd (a 1 , a 2 )> 1 && gcd (a 2 , a 3 )> 1 && ... && gcd (a n − 1 , a n )> 1.
Daftar akan selalu mengandung setidaknya dua elemen (n ≥ 2).
Namun…
Tantangan ini juga terbatas-sumber : codepoints dalam jawaban Anda (codepage apa pun itu berada) harus memenuhi kondisi program Anda memeriksa.
Misalnya, print 2
adalah program yang valid. Sebagai daftar titik kode Unicode [112 114 105 110 116 32 50] , yang memenuhi kondisi ini: 112 dan 114 berbagi faktor 2 ; dan 114 dan 105 berbagi faktor 3 , dll.
Namun, tidakmain
dapat muncul dalam program yang valid (maaf!), Karena titik kode Unicode dan , yaitu 109 dan 97 , adalah coprime. (Syukurlah, kiriman Anda tidak harus berupa program lengkap!)m
a
Program Anda tidak diizinkan mengandung codepoint 0.
Uji kasus
Benar:
[6 21] -> 1
[502 230 524 618 996] -> 1
[314 112 938 792 309] -> 1
[666 642 658 642 849 675 910 328 320] -> 1
[922 614 530 660 438 854 861 357 477] -> 1
Falsy:
[6 7] -> 0
[629 474 502 133 138] -> 0
[420 679 719 475 624] -> 0
[515 850 726 324 764 555 752 888 467] -> 0
[946 423 427 507 899 812 786 576 844] -> 0
Ini adalah kode-golf : kode terpendek dalam byte menang.
print 2
itu valid, tetapi );=ae
menjadi yang utama sangat sulit, saya tidak mempertimbangkan itu ... Saya ingin tahu apakah sesuatu seperti Haskell dapat bersaing?
%)+/5;=CGIOSYaegkmq\DEL
.