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!
K
doY
budowaćY
, która jest potrzebna w innym miejscu. Mogę jednak wykonać drukowanie osobno, na przykład za pomocąaYKK
zamiast zamiasteaYK
. Jednak ma 4 bajty w jedną stronę.Julia,
161149 bajtówTworzy to nienazwaną funkcję, która przyjmuje liczbę całkowitą jako dane wejściowe i wypisuje liczby do STDOUT oddzielone znakiem nowej linii. Aby to nazwać, nadaj mu nazwę, np
f=n->...
.Niegolfowane + wyjaśnienie:
Przykłady:
źródło
JavaScript ( ES6 ) 172
Uruchom poniższy fragment kodu, aby go przetestować
źródło
CJam, 54 bajty
To rozwiązanie wydaje się nieco niezręczne, ale ponieważ w CJam było niewiele odpowiedzi i nie ma żadnej, pomyślałem, że i tak to opublikuję:
Znaczna część przyrostu w stosunku do opublikowanego rozwiązania Pyth wynika z faktu, że o ile mogłem znaleźć, CJam nie ma operatora do wyliczenia wszystkich podzbiorów zestawu. Zajęło to trochę pracy, aby ukończyć to z dostępnymi operatorami. Oczywiście, jeśli rzeczywiście brakuje mi prostego operatora, wyglądam trochę głupio. :)
Wyjaśnienie:
Wypróbuj online
źródło
PHP, 263 bajtów
Wypróbuj online!
Rozszerzony
źródło
Galaretka , 22 bajty
Wypróbuj online!
Wyjaśnienie
źródło