0votos

Enumerar las factorizaciones de todos los naturales en Python

por Ruben Eduardo Acosta Vela hace 2 meses

Comienzo con un lista de primos "primos=[2]" verifico si el número puede ser dividido entre la lista de primos. Si al final tengo los factores deseados los imprimo, sino, agrego el siguiente primo a la lista, y repito el proceso.

Enumerar las factorizaciones de todos los naturales

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
n = int(input('Ingresa un número natural: ')) 
print('\nLos fatores primos para los numero ente 2 y',n,'son:\n') 
 
primos = [2] 
 
def addPrimo(): 
  numero = primos[-1] # last primo 
 
  while True: 
    numero += 1 
    for primo in primos: 
      if not numero%primo: 
        break 
    if not numero % primo: 
      continue 
    else:  
      primos.append(numero) 
      break 
 
for i in range(2,n+1): 
  numero = i 
  lista = [] 
  while True: 
    for primo in primos: 
      while numero%primo==0: 
        lista.append(primo) 
        numero = numero/primo 
      if numero==1: break 
    if numero==1: 
      print(i,'-->',lista) 
      break 
    else: 
      addPrimo() 
1 comentario
0votos

Escrito por Ruben Eduardo Acosta Vela hace 2 meses

Para n = 15, obtengo la siguiente salida:

```
Ingresa un número natural: 15

Los fatores primos para los numero ente 2 y 15 son:

2 --> [2]
3 --> [3]
4 --> [2, 2]
5 --> [5]
6 --> [2, 3]
7 --> [7]
8 --> [2, 2, 2]
9 --> [3, 3]
10 --> [2, 5]
11 --> [11]
12 --> [2, 2, 3]
13 --> [13]
14 --> [2, 7]
15 --> [3, 5]
```

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.