Полуфабрикаты
Полуфектное / псевдосовершенное число - это целое число, равное сумме части или всех его делителей (исключая себя). Числа, равные сумме всех их делителей, идеальны.
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 байта.Юлия,
161149 байтЭто создает безымянную функцию, которая принимает целое число в качестве входных данных и печатает числа в STDOUT, разделенные новой строкой. Чтобы назвать его, дайте ему имя, например
f=n->...
.Ungolfed + объяснение:
Примеры:
источник
JavaScript ( ES6 ) 172
Запустите фрагмент ниже, чтобы проверить
источник
CJam, 54 байта
Это решение кажется немного неловким, но так как было мало ответов, и ни одного в CJam, я решил опубликовать его в любом случае:
Хорошая часть приращения по сравнению с опубликованным решением Pyth обусловлена тем фактом, что, насколько я могу судить, CJam не имеет оператора для перечисления всех подмножеств набора. Таким образом, потребовалась некоторая работа, чтобы завершить это с доступными операторами. Конечно, если на самом деле есть простой оператор, который я пропустил, я буду выглядеть глупо. :)
Объяснение:
Попробуйте онлайн
источник
PHP, 263 байта
Попробуйте онлайн!
расширенный
источник
Желе , 22 байта
Попробуйте онлайн!
объяснение
источник