Semiperfekte Zahlen
Eine Semiperfekt- / Pseudoperfekt-Zahl ist eine ganze Zahl, die der Summe eines Teils oder aller ihrer Teiler (ohne sich selbst) entspricht. Zahlen, die gleich der Summe aller ihrer Teiler sind, sind perfekt.
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
Primitive
Eine primitive Semiperfektzahl ist eine Semiperfektzahl ohne semiperfekte Teiler (außer sich selbst :))
Divisors of 6 : 1,2,3
6 = 1+2+3 -> primitive
Divisors of 12 : 1,2,3,4,6
12 = 2+4+6 -> semiperfect
Verwenden Sie als Referenz die OEIS-Serie A006036 für primitive Semiperfekt-Zahlen und A005835 für Semiperfekte.
Tor
Schreiben Sie ein Programm oder eine Funktion in einer beliebigen Sprache. Als Eingabe wird eine Zahl n als Funktionsparameter oder von der nächstgelegenen Alternative von STDIN / Ihrer Sprache verwendet und es werden alle primitiven semi-perfekten Zahlen von 1 bis n (einschließlich) ausgegeben.
Die Ausgabe muss 6[separator]20[separator]28[separator]88...
so formatiert werden, dass [Trennzeichen] entweder als Zeilenumbruch, Leerzeichen oder Komma steht. Es darf weder ein Start- noch ein End-Trennzeichen geben.
Bearbeiten: Sie können einen abschließenden Zeilenumbruch hinterlassen
Beispiele
Eingabe:
5
Ausgabe :
Eingabe:
20
Ausgabe :
6
20
Eingabe:
100
Ausgabe :
6 20 28 88
Wertung
Das ist Code-Golf, also gewinnt der kürzeste Code in Bytes.
Versuchen Sie nicht, uns mit Lücken zu täuschen, bitte :).
Ich würde mich freuen, wenn Sie eine Erklärung Ihres Golf-Codes hinterlassen könnten, sobald Sie glauben, dass Sie damit fertig sind!
K
zuY
zu bauenY
, die an anderer Stelle gebraucht wird. Allerdings könnte ich den Druck auch separat machen, zB mitaYKK
statt miteaYK
. In beiden Fällen sind es jedoch 4 Bytes.