Dada uma lista de números inteiros positivos, determine se cada par adjacente de números inteiros compartilha um fator primo. Em outras palavras, produza verdade se e somente se não houver dois números inteiros vizinhos na lista como primos.
Em outros termos: dada uma lista de números inteiros positivos [a 1 a 2 … a n ] , produza se
gcd (a 1 , a 2 )> 1 && gcd (a 2 , a 3 )> 1 &&… && gcd (a n-1 , a n )> 1.
A lista sempre conterá pelo menos dois elementos (n ≥ 2).
Contudo…
Esse desafio também é de fonte restrita : os pontos de código em sua resposta (qualquer que seja a página de código) deve satisfazer a condição que seu programa verifica.
Por exemplo, print 2
é um programa válido. Como uma lista de pontos de código Unicode, é [112 114 105 110 116 32 50] , que satisfaz esta condição: 112 e 114 compartilham um fator 2 ; e 114 e 105 compartilham um fator de 3 etc.
No entanto, nãomain
pode ocorrer em um programa válido (desculpe!), Pois os pontos de código Unicode e , nomeadamente 109 e 97 , são coprime. (Felizmente, sua inscrição não precisa ser um programa completo!)m
a
Seu programa não tem permissão para conter o ponto de código 0.
Casos de teste
Verdade:
[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
Este é o código-golfe : o código mais curto em bytes vence.
print 2
era válido, mas );=ae
ser privilegiado é realmente difícil, não considerei isso ... Será que algo como Haskell pode competir?
%)+/5;=CGIOSYaegkmq\DEL
.