Неприкасаемые числа α
Неприкасаемое число - это положительное целое число, которое не может быть выражено как сумма всех собственных делителей любого натурального числа (включая само неприкасаемое число).
Например, число 4 не является неприкосновенным, поскольку оно равно сумме правильных делителей 9: 1 + 3 = 4. Число 5 неприкосновенно, поскольку оно не является суммой правильных делителей любого натурального числа. 5 = 1 + 4 - единственный способ записать 5 в виде суммы различных положительных целых чисел, включая 1, но если 4 делит число, 2 также делает, поэтому 1 + 4 не может быть суммой всех собственных делителей любого числа (так как список факторов должен содержать как 4, так и 2).
Число 5, как полагают, является единственным нечетным неприкасаемым числом, но это не было доказано: оно будет следовать из немного более сильной версии гипотезы Гольдбаха. β
Есть бесконечно много неприкасаемых чисел, факт, который доказал Пол Эрдос.
Несколько свойств неприкасаемых:
- Нет неприкасаемых 1 больше простого
- Нет неприкасаемых 3 больше простого, кроме 5
- Нет неприкасаемый это идеальный номер
- До сих пор все неприкасаемые, кроме 2 и 5, составные.
Задача
Создайте программу или функцию, которая принимает натуральное число n
через стандартные входные или функциональные параметры и печатает первые n
неприкасаемые числа.
Вывод должен иметь разделение между числами, но это может быть что угодно (например, переводы строк, запятые, пробелы и т. Д.).
Это должно быть в состоянии работать по крайней мере 1 <= n <= 8153
. Это основано на том факте, что b-файл, предоставленный для записи OEIS γ, увеличивается до n = 8153
.
Стандартные лазейки запрещены, как обычно.
Пример ввода / вывода
1 -> 2
2 -> 2, 5
4 -> 2, 5, 52, 88
10 -> 2, 5, 52, 88, 96, 120, 124, 146, 162, 188
8153 -> 2, 5, 52, 88, 96, 120, ..., ..., ..., 59996
Это Код-гольф, поэтому наименьшее количество байтов выигрывает.
α - Википедия , β - MathWorld , γ - OEIS
По какой-то причине это было помечено как дубликат вопроса «поиск полусовершенных чисел», однако задачи совершенно другие. В этом случае вы должны убедиться, что никакая сумма совершенных делителей любого натурального числа не может равняться определенному числу.
Ответы:
Pyth, 21 байт
Предупреждение: невероятно медленный Тестовый прогон и сроки ниже.
Это в основном грубая сила, насколько это возможно, тестирует факторизации вплоть до потенциального числа одиночного квадрата плюс один.
источник
C 104 байта
Это займет несколько минут для y > 20, но что угодно.
источник
Java, 310 байт
Гольф, как мог, но я был более заинтересован в том, чтобы убедиться, что он работает в разумные сроки. Безглазная версия, вероятно, более интересна
источник
Go, 396 байт
На самом деле не игра в гольф, но она может выполнить весь необходимый диапазон. Работает около ~ 20 минут и требует ~ 7 ГБ (независимо от n). Создает гигантский массив для вычисления суммы делителей для всех чисел до 59997 в квадрате.
источник