Running a test over a list to alter list

I'm quite new to this. I have a nested list that represent solutions to an equation. I would like to create a new list that only contains one 'representative' of each element. As an example, imagine I had a random list of integers less than 20, and I wanted to make a new list such if an element in the original list has a factor in the list, that element would be excluded. Would look something like:

Original list: {1, 2, 5, 10, 11, 12, 15, 16, 19}

New list: {1, 2, 5, 11, 19}

I'd like to stress that this is not exactly what I'm trying to do, so suggestions that involve looking for prime numbers will not be helpful. What I need is to run a test over elements of a list, and the result of this test depends on all elements of the list.

I have this right now:

Do[
JJ = {};
Clear[a, b, c];

a = sol[[i, 1]];
b = sol[[i, 2]];
c = sol[[i, 3]];
m = {{a, b}, {b, c}};

Do[
Clear[alpha, beta, gamma, n, k, kt, x, y, u, v];

alpha = sol[[j, 1]];
beta = sol[[j, 2]];
gamma = sol[[j, 3]];

n = {{alpha, beta}, {beta, gamma}};
k = {{x, y}, {u, v}};
kt = {{x, u}, {y, v}};
If[Solve[{m == k.n.kt, x*v - y*u == 1}, {x, y, u, v},
Integers] == {}, AppendTo[JJ, {a, b, c}]];

, {j, 1, Length[sol]}]

, {i, 1, Length[sol]}]


Above, the list sol is my originl list, where JJ is the new list I am trying to make such that JJ only contains 'unique representatives' from sol. It is not working how I thought it would. Any help/advice/info would be very much appreciated. Thanks!

• DeleteDuplicates[Flatten[(FactorInteger /@ list), 1][[All, 1]]] or more generally Select[list,test]. – David G. Stork Mar 29 at 3:49