Definiciones
- Dos números son primos si su único divisor común positivo es
1
. - Una lista de números es primo mutuo si cada par de números dentro de esa lista es primo entre sí.
- Una factorización de número
n
es una lista de números cuyo producto esn
.
Tarea
Dado un número positivo n
, genere la factorización mutuamente co-prima n
con la longitud máxima que no incluye 1
.
Ejemplo
Para n=60
, la respuesta es [3,4,5]
, porque 3*4*5=60
y ninguna otra factorización mutuamente coprima sin 1
tiene una longitud mayor o igual a 3
la longitud de la factorización.
Reglas y libertades
- Puede usar cualquier formato de entrada / salida razonable.
- Las entradas en la lista de salida no necesitan ser ordenadas.
Casos de prueba
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]
Puntuación
Este es el código de golf . La respuesta más corta en bytes gana.
code-golf
number-theory
primes
division
Monja permeable
fuente
fuente
1
.)Respuestas:
Matemáticas , 24 bytes.
Pruébalo en línea!
fuente
#^#2&@@@FactorInteger@#&[1]
vuelve{1}
en Mathematica. Pero funciona en matemáticas.FactorInteger
diferente. :)Brachylog , 4 bytes
Pruébalo en línea!
Explicación
fuente
05AB1E ,
35 bytes+2 bytes para arreglar el caso límite de
1
. Gracias a Riley por el parche (y por la suite de prueba, ¡mi 05ab1e no es tan fuerte!)Test suite en Pruébelo en línea!
¿Cómo?
fuente
1
.CJam , 9 bytes
Pruébalo en línea!
Simplemente separa la entrada en sus potencias primarias constituyentes y elimina
1
s (solo es necesario para la entrada1
).fuente
Haskell , 51 bytes
(2#)
es una función anónima que toma un número entero y devuelve una lista.Usar como
(2#) 99
.Pruébalo en línea!
Inspirado por el truco de poder que algunas personas usaron en el reciente desafío de números cuadrados libres .
m#n
genera factores den
, comenzando conm
.m>n
nos detenemos, concluimos que ya hemos encontrado todos los factores.x=gcd(m^n)n
es el factor más grande den
cuyos factores primos están todosm
. Tenga en cuenta que debido a que los más pequeñosm
se prueban primero, esto será1
menos quem
sea primo.x
en la lista resultante si no es 1, y luego repetimos con el siguientem
, dividiendon
porx
. Tenga en cuenta quex
ydiv n x
no puede tener factores comunes.(2#)
toma un número y comienza a encontrar sus factores2
.fuente
MATL , 7 bytes
Pruébalo en línea! O verificar todos los casos de prueba .
Explicación
Considere la entrada
80
como un ejemplo.EDITAR (9 de junio de 2017):
YF
con dos salidas se ha modificado en la versión 20.1.0 : los primos sin factor y sus exponentes (cero) se omiten. Esto no afecta el código anterior, que funciona sin requerir ningún cambio (pero1X-
podría eliminarse).fuente
1X-
es redundante en la nueva versión ... también, eso parece una diferencia establecida en lugar de una intersección para mí.Jalea , 5 bytes
Test suite en Pruébelo en línea!
¿Cómo?
fuente
ÆfŒgZP
. Tiene la misma cantidad de fichas pero demasiados átomos de dos bytes;)1
una entrada1
que no está permitida (el efecto de realizar un producto vacío).Alice , 10 bytes
Pruébalo en línea!
Desafortunadamente, esto usa puntos de código como E / S entera nuevamente . El caso de prueba en el enlace TIO es la entrada 191808 que se descompone en 64 , 81 y 37 . Tenga en cuenta que esta solución imprime las potencias principales en orden de mayor a menor, por lo que obtenemos la salida
%Q@
.Por conveniencia, aquí hay una solución de 16 bytes con E / S decimal que usa el mismo algoritmo central:
Pruébalo en línea!
Explicación
Como las otras respuestas, esto descompone la entrada en poderes primarios.
fuente
Mathica 46 bytes
Pruébalo en línea!
fuente
{}; {2}; {3}; {2}; {5}; {2,3}; {7}; {2}; {3}; {2,5}; {11}; {2,3}; {13}; ...
sale pero debería salir en su{}; {2}; {3}; {4}; {5}; {2,3}; {7}; {8}; {9}; {2,5}; {11}; {4,3}; {13}; ...
lugar.#
más de#
sí mismo, puede guardar muchos bytes usandoApply
(@@@
) en lugar deMap
(/@
):#^#2&@@@If...
PHP, 62 bytes
imprime una matriz asociativa con la prima como clave y con qué frecuencia se usa la prima como valor y nada como entrada
1
Pruébalo en línea!
Salida para
60
PHP, 82 bytes
Pruébalo en línea!
no imprime nada como entrada
1
si desea una matriz vacía y una matriz ordenada será un poco más largafuente
En realidad , 6 bytes
Pruébalo en línea!
Explicación:
fuente
Pari / GP , 28 bytes
Pruébalo en línea!
fuente
miniML , 47 bytes
Los desafíos que implican la factorización prima están terriblemente sobre representados aquí, por lo que todos estamos tristemente obligados a tener la factorización en la biblioteca estándar.
Tenga en cuenta que el 'mini' en miniml se refiere al tamaño del conjunto de características, no al tamaño del código fuente escrito en él.
fuente
Ruby, 61 bytes
Estoy realmente decepcionado después de buscar soluciones de 6-7 bytes -))
fuente
Mathematica, 24 bytes
Lástima
@@@*
que no sea una cosa. Además, me gustaría/@*
,@@*
y, de hecho, el cambio@@@
a/@@
,//@
a@@@
, o lo que sea y añadir a la familia infinita de//@
,///@
, ...fuente