Liczby semiperfekcyjne
Liczba semiperfect / pseudoperfect jest liczbą całkowitą równą sumie części lub wszystkich jej dzielników (z wyłączeniem samego siebie). Liczby równe sumie wszystkich dzielników są idealne.
Divisors of 6 : 1,2,3
6 = 1+2+3 -> semiperfect (perfect)
Divisors of 28 : 1,2,4,7,14
28 = 14+7+4+2+1 -> semiperfect (perfect)
Divisors of 40 : 1,2,4,5,8,10,20
40 = 1+4+5+10+20 or 2+8+10+20 -> semiperfect
Prymitywny
Prymitywna liczba semiperfect jest liczbą semiperfect bez dzielników semiperfect (oprócz siebie :))
Divisors of 6 : 1,2,3
6 = 1+2+3 -> primitive
Divisors of 12 : 1,2,3,4,6
12 = 2+4+6 -> semiperfect
Jako odniesienia użyj serii OEIS A006036 dla prymitywnych liczb półprefekcyjnych i A005835 dla semiperfekcyjnych.
Cel
Napisz program lub funkcję w dowolnym języku. Przyjmie jako liczbę wejściową liczbę n jako parametr funkcji lub z STDIN / najbliższej alternatywy twojego języka i wyświetli wszystkie prymitywne pół-idealne liczby od 1 do n (włącznie).
Dane wyjściowe muszą być sformatowane jako 6[separator]20[separator]28[separator]88...gdzie [separator] jest albo znakiem nowej linii, spacją lub przecinkiem. Nie może istnieć początkowy [separator] ani końcowy.
Edycja: możesz zostawić końcowy znak nowej linii
Przykłady
Wejście :
5
wynik :
Wejście :
20
wynik :
6
20
Wejście :
100
wynik :
6 20 28 88
Punktacja
To jest code-golf, więc wygrywa najkrótszy kod w bajtach.
Nie próbuj nas oszukać lukami :).
Cieszę się, że możesz zostawić wyjaśnienie swojego kodu do gry w golfa, gdy pomyślisz, że skończyłeś grać w golfa!
KdoYbudowaćY, która jest potrzebna w innym miejscu. Mogę jednak wykonać drukowanie osobno, na przykład za pomocąaYKKzamiast zamiasteaYK. Jednak ma 4 bajty w jedną stronę.