Напівдосконалі числа
Напівдосконале / псевдодосконале число - це ціле число, що дорівнює сумі частини або всіх його дільників (виключаючи себе). Числа, які дорівнюють сумі всіх їх дільників, досконалі.
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
Примітивні
Примітивне напівдосконале число - це напівдосконале число без напівдосконалих дільників (крім себе :))
Divisors of 6 : 1,2,3
6 = 1+2+3 -> primitive
Divisors of 12 : 1,2,3,4,6
12 = 2+4+6 -> semiperfect
В якості посилань використовуйте OEIS серії A006036 для примітивних напівдосконалих номерів та A005835 для напівдосконалих.
Мета
Напишіть програму або функцію будь-якою мовою. Це буде приймати число n як функціональний параметр або від STDIN / найближчої альтернативи вашій мові, і виведе всі примітивні напівдосконалі числа від 1 до n (включно).
Вихід має бути сформований так, 6[separator]20[separator]28[separator]88...
де [роздільник] є як новий рядок, пробіл або кома. Не повинно бути ні початкового [роздільника], ні закінчення.
Редагувати: Ви можете залишити новий рядок
Приклади
вхід:
5
вихід:
вхід:
20
вихід:
6
20
вхід:
100
вихід:
6 20 28 88
Оцінка балів
Це код-гольф, тому найкоротший код у байтах виграє.
Не намагайтесь обдурити нас лазівками, будь ласка :).
Буду радий, що ви можете залишити пояснення свого коду для гольфу, як тільки подумаєте, що закінчили з гольфом!
K
доY
для збіркиY
, яка необхідна в іншому місці. Однак я могла робити друк окремо, наприклад,aYKK
замість цьогоeaYK
. Однак це 4 байти в будь-якому випадку.