# Form a list using prime numbers

## 05AB1E, 13 bytes

Ò.»â€˜ʒ÷DÙQ}θ


Try it online!

A port of my Pyth answer.

• Ò gets the prime factÒrs of each.
• .» folds a dyadic command, â (cârtesiân product) between each two elements in the list from right to left with opposite right/left operands.
• €˜ flattens ach.
• ʒ...} filtʒrs those which satisfy the following condition:
• ÷ pairwise integer division with the input.
• D Duplicate (pushes two copies of the item to the stack).
• Ù removes duplicate elements, keeping a ÙniqÙe occurrence of each element.
• Q checks for eQuality.
• θ gets the last element.

## Jelly,  15  14 bytes

³:ŒQẠ
ÆfŒpÇÐfṪ


A full-program which accepts one argument, a list of numbers, and prints a representation of another list of numbers, or 0 if the task is impossible.

Try it online!

### How?

³:ŒQẠ - Link 1, unique after division?: list of primes, Ps   e.g. [7,2,2]  or  [7,3,3]
³     - program's first input                                e.g. [7,8,8]  or  [7,9,30]
:    - integer division by Ps                                    [1,4,4]      [1,3,10]
ŒQ  - distinct sieve                                            [1,1,0]      [1,1,1]
Ạ - all truthy?                                               0            1

ÆfŒpÇÐfṪ - Main link: list of coin stack sizes, Bs   e.g. [7,8,12]
Æf       - prime factorisation (vectorises)               [[7],[2,2,2],[2,2,3]]
Œp     - Cartesian product                              [[7,2,2],[7,2,2],[7,2,3],[7,2,2],[7,2,2],[7,2,3],[7,2,2],[7,2,2],[7,2,3]]
Ðf  - filter keep if:
Ç    -   call last link (1) as a monad                 1       1       0       1       1       0       1       1       0
-                                                [[7,2,2],[7,2,2],[7,2,2],[7,2,2],[7,2,2],[7,2,2]]
Ṫ - tail (note: tailing an empty list yields 0)    [7,2,2]
- implicit print


## Pyth, 15 bytes

ef{I/VQT.nM*FPM


Try it here!

### How?

ef{I/VQT.nM*FPM | Full program, which foregoes the size.
|
PM | Prime factorisation of each integer.
*F   | Fold Cartesian Product over the list of primes.
.nM     | Flatten each.
f              | Filter.
{I/VQT        | Filter condition (uses a variable T).
/V          | Vectorised integer division...
QT        | Over the input and the current item.
{I            | Is invariant over deduplication (removing duplicates)?
e               | Take the last element.
| Output the result implicitly.