Find primitive semiperfect numbers Semiperfect numbers

A semiperfect/pseudoperfect number is an integer equal to the sum of a part of or all of its divisors (excluding itself). Numbers which are equal to the sum of all of their divisors are perfect.

Divisors of 6 : 1,2,3
      6 = 1+2+3 -&gt; semiperfect (perfect)
Divisors of 28 : 1,2,4,7,14
      28 = 14+7+4+2+1 -&gt; semiperfect (perfect)
Divisors of 40 : 1,2,4,5,8,10,20
      40 = 1+4+5+10+20 or 2+8+10+20 -&gt; semiperfect


Primitive

A primitive semiperfect number is a semiperfect number with no semiperfect divisors (except itself :))

Divisors of 6 : 1,2,3
      6  = 1+2+3 -&gt; primitive
Divisors of 12 : 1,2,3,4,6
      12 = 2+4+6 -&gt; semiperfect


As references, please use the OEIS series A006036 for primitive semiperfect numbers, and A005835 for semiperfects.

Goal

Write a program or a function in any language.
It will take as input a number n as a function parameter or from STDIN/your language's closest alternative, and will output all the primitive semi-perfect numbers from 1 to n (inclusive).

The output must be formated as 6[separator]20[separator]28[separator]88... where [separator] is either as newline, a space or a comma. There must not be a starting [separator] nor a ending one.

Edit : you can leave a trailing newline

Examples

input : 

5


output : 

input : 

20


output : 

6
20


input : 

100


output : 

6 20 28 88


Scoring

This is code-golf, so the shortest code in bytes win.

Don't try to fool us with loopholes please :).

I'd be glad you could leave an explanation of your golfed code once you think you're done golfing it!

As this challenge already have some nice answers, and is slowly getting quiet, I'll put an end to it. The winner of this code-golf will be decided on Monday 29th, 00:00 GMT. Well done to all of you that have answered, and good luck to those who will try to beat them :)
Pyth, 28 27 bytes

VQI}KhNsMyJf!%KTSNI!@JYeaYK


1 byte thanks to @Jakube

Demonstration.

VQI}KhNsMyJf!%KTSNI!@JYeaYK
                                Implicit:
                                Y = []
                                Q = eval(input())
VQ                              for N in range(Q):
    KhN                         K = N+1
           f    SN              filter T over range(1, N)
            !%KT                the logical not of K%T.
                                This is the list of divisors of K.
          J                     Store the list in J.
         y                      Create all of its subsets.
       sM                       Map each subset to its sum.
  I}K                           If K is in that list: (If K is semiperfect)
                  I!@JY         If the intersection of J (the divisors)
                                and Y (the list of primitive semiperfect numbers)
                                is empty:
                        aYK     Append K to Y
                       e        And print its last element, K.