Фон
Люди говорили о факторизации в чате, и мы говорили о встречах. Повторные объединения представляют собой подмножество чисел, известных как повторные обозначения, которые представляют собой числа, состоящие только из повторяющихся цифр, таких как 222
или 4444444444444444
, но повторные соединения состоят только из 1
.
Первая пара repunits, следовательно 1
, 11
, 111
и т.д. Они называются по R п , так что R 1 = 1
, R 2 = 11
, и т.д., и генерируются по формуле R(n) = (10^n - 1)/9
, с n > 0
.
Первичная факторизация этих чисел повторения объединяет последовательность A102380 в OEIS. Например:
R 1 = 1
R 2 = 11
R 3 = 111 = 3 * 37
R 4 = 1111 = 11 * 101
R 5 = 11111 = 41 * 271
R 6 = 111111 = 3 * 7 * 11 * 13 * 37
R 7 = 1111111 = 239 * 4649
...
Соревнование
Напишите программу или функцию, которая при задании входного целого числа n с n >= 2
помощью STDIN или его эквивалента выводит или возвращает новые простые множители для R n в любом удобном формате. «Новые простые факторы» здесь означают все, x
где x
есть простой фактор R n , но x
не является основным фактором для любого предыдущего R k , с 1 <= k < n
(т. Е. Если мы записываем простые факторы для всех R в последовательности, мы не видели x
перед).
Примеры
Input: 6
Output: 7, 13
(because 3, 11, and 37 are factors of a smaller R_k)
Input: 19
Output: 1111111111111111111
(because R_19 is prime, so no other factors)
Input: 24
Output: 99990001
(because 3, 7, 11, 13, 37, 73, 101, 137, 9901 are factors of a smaller R_k)
Input: 29
Output: 3191, 16763, 43037, 62003, 77843839397
(because no factors of R_29 are also factors of a smaller R_k)
Дополнительно:
- Ваш код может сделать что-нибудь или ничего, если
n < 2
. - Вы можете принять «разумный» верхний предел для
n
для тестирования и выполнения целей - ваш код не будет ожидать на выходе дляn = 10000000
, например, но ваш алгоритм должен работать для такого случая , если дано неограниченное вычислительной мощности и времени. - Вот сайт, посвященный факторизации отрядов для справки.
- Я не прошел математику, но я предлагаю гипотезу, что каждый n имеет отдельный результат для этого алгоритма - то есть, не существует n , так что у R n нет новых факторов.
Я предложу вознаграждение в 250 баллов, если кто-то докажет или опровергнет это в своем ответе.Томас Ква предложил элегантное доказательство , и я наградил награду.