# List of prime factors with repetition

Is there a simple command on Sage wich gives, in place of factor(720)= 2^4 * 3^2 * 5, the list [2, 2, 2, 2, 3, 3, 5] of prime factors with repetition?

List of prime factors with repetition

asked
**
2016-05-21 09:14:39 -0600
**

This post is a wiki. Anyone with karma >750 is welcome to improve it.

Is there a simple command on Sage wich gives, in place of factor(720)= 2^4 * 3^2 * 5, the list [2, 2, 2, 2, 3, 3, 5] of prime factors with repetition?

add a comment

4

Some potentially useful variations, building on previous answers and comments by @calc314 and @logomath.

The function `factor`

returns a factorization.

```
sage: F = factor(2016)
sage: F
2^5 * 3^2 * 7
```

This secretly wraps a list of pairs (prime, multiplicity), and you can get this list.

```
sage: list(F)
[(2, 5), (3, 2), (7, 1)]
```

You can also iterate through this list of pairs directly.

```
sage: for pm in F: print pm
(2, 5)
(3, 2)
(7, 1)
```

This means you can use list comprehension in smart ways.

```
sage: [f[0] for f in F for _ in range(f[1])]
[2, 2, 2, 2, 2, 3, 3, 7]
```

Same as above, but calling (p, m) the pairs.

```
sage: [p for (p, m) in F for _ in range(m)]
[2, 2, 2, 2, 2, 3, 3, 7]
```

Getting a list of repetitions of each prime.

```
sage: [([p] * m) for (p, m) in F]
[[2, 2, 2, 2, 2], [3, 3], [7]]
```

Flattening it to get the list of prime factors with multiplicity.

```
sage: flatten([([p] * m) for (p, m) in F])
[2, 2, 2, 2, 2, 3, 3, 7]
```

Using `add`

to sum lists starting from the empty list
(included as an optional parameter to `add`

).

```
sage: add([[p] * m for (p, m) in F], [])
[2, 2, 2, 2, 2, 3, 3, 7]
```

(Edit.) Same but using an iterator instead of a list.

```
sage: add(([p] * m for (p, m) in F), [])
[2, 2, 2, 2, 2, 3, 3, 7]
```

2

I don't know of a direct command. Here is one option, though.

```
F= factor(2016)
result=[f[0] for f in F for i in range(f[1])]
result
```

You may wish to look up the factor command for more details and examples.

Asked: **
2016-05-21 09:14:39 -0600
**

Seen: **901 times**

Last updated: **May 23 '16**

Finding prime factorization of ideals in number rings

factor x^2 - 30*x + 2817 in sqrt(-2)

why don't sage return exact value in some functions

List common factors of integers

Convert from int to double and back in Cython

Polynomial as a sum of simply factored expressions?

How to get sage to keep the same form as an expression from sympy?

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.