Nesse desafio proposto pelo xnor, fomos solicitados a implementar a multiplicação do XOR. Neste desafio, o objetivo é encontrar os primeiros n
primos XOR. Os primos XOR são muito semelhantes aos primos regulares, como você pode ver nas seguintes definições:
Definição de número primo: Um número positivo maior que 1 que não pode ser formado através da multiplicação de dois números, exceto pela multiplicação de 1 e ele próprio.
Definição de XOR Prime: Um número positivo maior que 1 que não pode ser formado através da multiplicação XOR de dois números, exceto através da multiplicação XOR de 1 e de si próprio. Observe que os primos XOR compõem a sequência de oeis A014580 .
A multiplicação XOR é definida como multiplicação longa binária sem carregar. Você pode encontrar mais informações sobre a multiplicação de XOR no desafio do xnor .
Entrada:
Um inteiro n
.
Resultado:
O primeiro n
XOR inicia.
Aqui estão os números primos do XOR abaixo de 500:
2 3 7 11 13 19 25 31 37 41 47 55 59 61 67 73 87 91 97 103 109 115 117 131 137 143 145 157 167 171 185 191 193 203 211 213 229 239 241 247 253 283 285 299 301 313 319 333 351 355 357 361 369 375 379 391 395 397 415 419 425 433 445 451 463 471 477 487 499
F_2[x]
.Respostas:
Pitão, 26 bytes
Demonstração
Para testar se um número é XOR-prime, geramos a tabela de multiplicação completa até esse número usando o algoritmo daqui e, em seguida, contamos quantas vezes esse número aparece. Se for exatamente 2, o número é primo.
Em seguida,
.f
retorna os primeiros n primos.fonte
Mathematica,
10099 bytesfonte
Pari / GP , 74 bytes
Economizou 4 bytes graças a Charles .
Experimente online!
Basicamente, o mesmo que minha resposta do Mathematica , mas o PARI / GP possui nomes de funções mais curtos.
fonte
n->p=0;while(n,if(polisirreducible(Mod(Pol(binary(p++)),2)),print(p);n--))
.Ceilão, 166 bytes
Claro que isso não pode competir com a Pyth & Co ...
Formatado:
Isso cria um número iterável infinito de números inteiros (começando com 2), filtra-o verificando se um número é primo por XOR e leva o primeiro
n
elementos disso.Essa filtragem funciona repetindo todos os elementos de 2 a m-1 (que são m-2) e verificando cada par se o xor-produto fornece
m
. Se o iterável criado por ele estiver vazio,m
é um xor-prime e, portanto, está incluído.O próprio produto xor é calculado usando o mesmo algoritmo (e quase o mesmo código) da minha resposta para o cálculo do produto XOR .
fonte
Julia, 116 bytes
A função principal é a função anônima na segunda linha. Ele chama uma função auxiliar
f
(que é incidentalmente minha submissão ao desafio do xnor).Ungolfed:
fonte