Pozitif tamsayıların bir listesi verildiğinde, içindeki her bir bitişik tamsayı çiftinin bir ana faktörü paylaşıp paylaşmadığını çıktılayın. Başka bir deyişle, çıkış truthy ancak ve ancak hiçbir listede iki komşu tamsayılar eş asal vardır.
Yine başka terimlerle: [a 1 a 2 … a n ] pozitif tamsayıların bir listesi verildiğinde , çıktının çıkıp çıkmadığı
gcd (a 1 , a 2 )> 1 && gcd (a 2 , a 3 )> 1 &&… && gcd (a n − 1 , a n )> 1.
Liste her zaman en az iki öğe içerecektir (n ≥ 2).
Ancak…
Bu zorluk aynı zamanda sınırlı bir kaynaktır : cevabınızdaki kod noktaları (içinde hangi kod sayfası varsa olabilir) programınızın kontrol ettiği koşulu sağlamalıdır.
Örneğin, print 2
geçerli bir programdır. Unicode kod noktalarının bir listesi olarak , bu koşulu sağlayan [112 114 105 110 116 32 50] : 112 ve 114 , 2 faktörünü paylaşır ; ve 114 ve 105 pay bir etken 3 , vs.
Ancak, main
olabilir değil (üzgünüm!), Unicode ait codepoints gibi geçerli programda meydana m
ve a
yani 109 ve 97 , göreceli asal vardır. (Neyse ki, gönderiminizin eksiksiz bir program olmasına gerek yok!)
Programınız kod noktası 0 içeremez.
Test durumları
Truthy:
[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
Bu kod-golf : bayt cinsinden en kısa kod kazanır.
print 2
geçerli olduğunu fark ettiğimde umutlu hissediyordum , ancak );=ae
asal olmak gerçekten zor, bunu düşünmedim… Acaba Haskell gibi bir şey yapabilir mi? rekabet?
%)+/5;=CGIOSYaegkmq\DEL
.