Definições
- Dois números são co-primos se o único divisor comum positivo for
1
. - Uma lista de números é co-prime mutuamente se cada par de números nessa lista for co-prime entre si.
- Uma fatoração de número
n
é uma lista de números cujo produto én
.
Tarefa
Dado um número positivo n
, produza a fatoração mutuamente co-primária n
com o comprimento máximo que não inclui 1
.
Exemplo
Pois n=60
, a resposta é [3,4,5]
: porque 3*4*5=60
e nenhuma outra fatoração mutuamente co-principal sem 1
comprimento maior ou igual ao 3
comprimento da fatoração.
Regras e liberdades
- Você pode usar qualquer formato razoável de entrada / saída.
- As entradas na lista de saída não precisam ser classificadas.
Casos de teste
n output
1 []
2 [2]
3 [3]
4 [4]
5 [5]
6 [2, 3]
7 [7]
8 [8]
9 [9]
10 [2, 5]
11 [11]
12 [3, 4]
13 [13]
14 [2, 7]
15 [3, 5]
16 [16]
17 [17]
18 [2, 9]
19 [19]
20 [4, 5]
21 [3, 7]
22 [2, 11]
23 [23]
24 [3, 8]
25 [25]
26 [2, 13]
27 [27]
28 [4, 7]
29 [29]
30 [2, 3, 5]
31 [31]
32 [32]
33 [3, 11]
34 [2, 17]
35 [5, 7]
36 [4, 9]
37 [37]
38 [2, 19]
39 [3, 13]
40 [5, 8]
41 [41]
42 [2, 3, 7]
43 [43]
44 [4, 11]
45 [5, 9]
46 [2, 23]
47 [47]
48 [3, 16]
49 [49]
50 [2, 25]
51 [3, 17]
52 [4, 13]
53 [53]
54 [2, 27]
55 [5, 11]
56 [7, 8]
57 [3, 19]
58 [2, 29]
59 [59]
60 [3, 4, 5]
61 [61]
62 [2, 31]
63 [7, 9]
64 [64]
65 [5, 13]
66 [2, 3, 11]
67 [67]
68 [4, 17]
69 [3, 23]
70 [2, 5, 7]
71 [71]
72 [8, 9]
73 [73]
74 [2, 37]
75 [3, 25]
76 [4, 19]
77 [7, 11]
78 [2, 3, 13]
79 [79]
80 [5, 16]
81 [81]
82 [2, 41]
83 [83]
84 [3, 4, 7]
85 [5, 17]
86 [2, 43]
87 [3, 29]
88 [8, 11]
89 [89]
90 [2, 5, 9]
91 [7, 13]
92 [4, 23]
93 [3, 31]
94 [2, 47]
95 [5, 19]
96 [3, 32]
97 [97]
98 [2, 49]
99 [9, 11]
Pontuação
Isso é código-golfe . A resposta mais curta em bytes vence.
code-golf
number-theory
primes
division
Freira Furada
fonte
fonte
1
).Respostas:
Matemática , 24 bytes
Experimente online!
fonte
#^#2&@@@FactorInteger@#&[1]
retorna{1}
no Mathematica. Mas isso funciona em matemática.FactorInteger
diferente. :)Braquilog , 4 bytes
Experimente online!
Explicação
fonte
05AB1E ,
35 bytes+2 bytes para corrigir o caso de borda de
1
. Graças a Riley pelo patch (e pela suíte de testes, meu 05ab1e não é tão forte!)Conjunto de testes em Experimente online!
Quão?
fonte
1
.CJam , 9 bytes
Experimente online!
Simplesmente separa a entrada em seus poderes primários constituintes e remove
1
s (necessário apenas para a entrada1
).fonte
Haskell , 51 bytes
(2#)
é uma função anônima que pega um número inteiro e retorna uma lista.Use como
(2#) 99
.Experimente online!
Inspirado pelo truque de poder que algumas pessoas usaram no recente desafio de número sem quadrados .
m#n
gera fatores den
, começando comm
.m>n
pararmos, concluímos que já encontramos todos os fatores.x=gcd(m^n)n
é o maior fatorn
cujos fatores principais estão presentesm
. Observe que, como os menoresm
são testados primeiro, isso será a1
menos quem
seja primo.x
na lista resultante, se não for 1, e depois recuamos com a próximam
, dividindon
porx
. Observe quex
ediv n x
não pode ter fatores comuns.(2#)
pega um número e começa a encontrar seus fatores a partir de2
.fonte
MATL , 7 bytes
Experimente online! Ou verifique todos os casos de teste .
Explicação
Considere a entrada
80
como um exemplo.EDIT (9 de junho de 2017):
YF
com duas saídas foi modificado no release 20.1.0 : números primos sem fator e seus expoentes (zero) são ignorados. Isso não afeta o código acima, que funciona sem exigir alterações (mas1X-
pode ser removido).fonte
1X-
sejam redundantes no novo lançamento ... também, isso parece uma diferença definida, em vez de uma interseção para mim.Gelatina , 5 bytes
Conjunto de testes em Experimente online!
Quão?
fonte
ÆfŒgZP
. Tem o mesmo número de fichas, mas também muitas átomos de dois bytes;)1
para uma entrada1
que não é permitida (o efeito de executar um produto vazio).Alice , 10 bytes
Experimente online!
Infelizmente, isso usa pontos de código como E / S inteira novamente . O caso de teste no link TIO é a entrada 191808 que se decompõe em 64 , 81 e 37 . Observe que esta solução imprime as potências primárias na ordem da maior para a menor, para obtermos a saída
%Q@
.Por conveniência, aqui está uma solução de 16 bytes com E / S decimal que usa o mesmo algoritmo principal:
Experimente online!
Explicação
Como as outras respostas, isso decompõe a entrada em potências primárias.
fonte
mathematica 46 bytes
Experimente online!
fonte
{}; {2}; {3}; {2}; {5}; {2,3}; {7}; {2}; {3}; {2,5}; {11}; {2,3}; {13}; ...
mas deve ser exibido{}; {2}; {3}; {4}; {5}; {2,3}; {7}; {8}; {9}; {2,5}; {11}; {4,3}; {13}; ...
.#
mais de#
si mesmo, você pode salvar um monte de bytes usandoApply
(@@@
) em vez deMap
(/@
):#^#2&@@@If...
PHP, 62 bytes
imprime uma matriz associativa com o primo como chave e com que frequência o primo é usado como valor e nada para entrada
1
Experimente online!
Saída para
60
PHP, 82 bytes
Experimente online!
imprime nada para entrada
1
se você deseja uma matriz vazia e uma matriz classificada será um pouco mais longafonte
Na verdade , 6 bytes
Experimente online!
Explicação:
fonte
Pari / GP , 28 bytes
Experimente online!
fonte
miniML , 47 bytes
Os desafios que envolvem a fatoração primária são super-representados aqui, então todos somos tristemente forçados a ter a fatoração na biblioteca padrão.
Observe que o 'mini' em miniml se refere ao tamanho do conjunto de recursos, não ao tamanho do código-fonte escrito nele.
fonte
Ruby, 61 bytes
Estou realmente decepcionado depois de procurar soluções de 6 a 7 bytes -))
fonte
Mathematica, 24 bytes
Pena que
@@@*
não é uma coisa. Além disso, eu gostaria/@*
,@@*
e, de fato, a mudança@@@
para/@@
,//@
de@@@
ou o que quer e adicione a família infinita de//@
,///@
...fonte