Полуфабрикаты
Полуфектное / псевдосовершенное число - это целое число, равное сумме части или всех его делителей (исключая себя). Числа, равные сумме всех их делителей, идеальны.
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...
где [separator] либо в виде новой строки, пробела или запятой. Не должно быть ни начального [разделителя], ни конечного.
Изменить: вы можете оставить завершающий перевод новой строки
Примеры
вход:
5
выход :
вход:
20
выход :
6
20
вход:
100
выход :
6 20 28 88
счет
Это код-гольф, поэтому выигрывает самый короткий код в байтах.
Не пытайтесь обмануть нас лазейками, пожалуйста :).
Я был бы рад, что вы могли бы оставить объяснение своего кода для игры в гольф, как только вы думаете, что закончили играть в гольф!
K
чтобыY
построитьY
, что нужно в другом месте. Тем не менее, я мог бы сделать печать отдельно, например, сaYKK
вместоeaYK
. Однако в любом случае это 4 байта.