Você deve escrever 3 programas e / ou funções em um idioma.
Todos esses programas devem resolver a mesma tarefa, mas todos devem fornecer resultados diferentes (mas válidos). (Ou seja, para cada par de programas, deve haver alguma entrada que gere conjuntos diferentes (mas válidos) de números de saída.)
A tarefa
- Você recebe um número inteiro
n
maior que 1 - Você deve retornar ou gerar números inteiros positivos
n
distintos , e nenhum deles deve ser divisível porn
. - A ordem dos números não importa e uma permutação de números não conta como saídas diferentes.
Um trigêmeo válido de programas com alguns input => output
pares:
program A:
2 => 5 9
4 => 5 6 9 10
5 => 2 4 8 7 1
program B:
2 => 1 11
4 => 6 9 1 2
5 => 4 44 444 4444 44444
program C (differs only in one number from program B):
2 => 1 13
4 => 6 9 1 2
5 => 4 44 444 4444 44444
Pontuação
- Sua pontuação é a soma dos comprimentos dos 3 programas ou funções.
- Menor pontuação é melhor.
- Se seus programas / funções compartilham código, o código compartilhado deve ser contado no comprimento de cada programa que usa o código.
code-golf
number
arithmetic
number-theory
randomra
fonte
fonte
Respostas:
Pyth,
1716 bytes5 bytes:
Saídas:
6 bytes:
Saídas:
5 bytes:
Saídas:
Versão alternativa, em ordem crescente:
-ShQQ
fonte
J, 16 bytes
Função 1, 5 bytes
Função 2, 6 bytes
Função 3, 5 bytes
Como funciona
Função 1
Como P é primo e P> y , y não pode dividir P e .
Função 2
Se y dividisse P e + y , também dividiria P e + y - y = P e .
Função 3
Se y dividido (y + 1) e algum fator primordial Q de y teria que dividir (y + 1) e .
Mas então, Q dividiria y e y + 1 e, portanto, y + 1 - y = 1 .
fonte
Dyalog APL,
1617 bytesfonte
Vitsy , 54 bytes
Programas:
Saídas:
Como funciona (usando o primeiro programa como explicação):
Experimente online!
fonte
Perl, 79
Um caractere foi adicionado a cada programa porque isso requer o
-n
sinalizador.Bastante direto.
fonte
Mathematica, 12 + 12 + 12 = 36 bytes
Testes:
fonte
CJam, 8 + 8 + 8 = 24 bytes
Essas são três funções sem nome que esperam
n
estar na pilha e deixam uma lista de números inteiros em seu lugar. Não tenho certeza se isso é ideal, mas terei que procurar uma solução mais curta mais tarde.Suíte de teste.
Resultados:
O primeiro também funciona como
ou
fonte
Python 2, 79 bytes
Três funções anônimas iniciadas
1
e contadas por cada uma delasn, 2*n, 3*n
paran
termos.fonte
Sério, 20 bytes
Sim, isso não é o ideal ...
fonte
Par , 16 bytes
A codificação personalizada, descrita aqui , usa apenas um byte por caractere.
Saídas
fonte
Haskell, 54 bytes
Essas três funções são bem simples, então…
fonte
Oitava, 11 + 13 + 13 = 37 bytes
fonte
Python 2, 125 bytes
Cada linha aqui é um programa completo. A solução mais óbvia em minha mente.
EDIT @ Sherlock9 salvou dois bytes.
fonte
Haskell, 50
Exemplos:
fonte
Golfscript, 50
5157bytesUma versão Golfscript do que costumava ser o código Python da quintopia . Cada função tira
n
a pilha.fonte
TI-Basic (TI-84 Plus CE),
55total de 40 bytesSimples, semelhante a muitas outras respostas aqui, cada uma exibe uma lista dos números (X + A) N + 1 para X no intervalo (N) e com A sendo qual programa (1, 2 ou 3).
Solução antiga (55 bytes):
Simples, semelhante a muitas outras respostas aqui, cada uma exibe os números (X + A) N + 1 para X no intervalo (N) e com A sendo qual programa (1, 2 ou 3).
fonte