Tło
Ludzie rozmawiali o faktoryzacji na czacie, a my rozmawialiśmy o repunitach. Repunity to podzbiór liczb znanych jako repdigits, które są liczbami składającymi się tylko z powtarzających się cyfr, takich jak 222
lub 4444444444444444
, ale repunity składają się tylko z 1
.
Pierwsze kilka repunits są zatem 1
, 11
, 111
, itd. Są one określane przez R n , to R 1 = 1
, R 2 = 11
, etc., i generowane są przez wzór R(n) = (10^n - 1)/9
z n > 0
.
Pierwotne faktoryzacja tych ponownych numerów następuje po sekwencji A102380 w OEIS. Na przykład:
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
...
Wyzwanie
Napisać program lub funkcji, które po podaniu Wejście całkowitą N z n >= 2
pośrednictwem standardowego wejścia lub równoważne , wyjść lub zwraca nowe czynniki pierwsze dla R n , w dowolnej dogodnej postaci. „Nowe czynniki pierwsze” oznaczają tutaj wszystko, x
gdzie x
jest liczbą pierwszą R n , ale x
nie jest liczbą pierwszą dla żadnego poprzedniego R k , z 1 <= k < n
(tzn. Jeśli piszemy czynniki pierwsze dla wszystkich R w sekwencji, nie widzieliśmy x
przed).
Przykłady
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)
Dodatki:
- Twój kod może zrobić wszystko lub nic, jeśli
n < 2
. - Można założyć, „rozsądny” górną granicę
n
w celach testowych i wykonanie - kod nie będzie oczekiwać na wyjście don = 10000000
, na przykład, ale twój algorytm powinien działać w takim przypadku, jeśli dany nieograniczonej mocy obliczeniowej i czasu. - Oto strona poświęcona faktoryzacji repunitów w celach informacyjnych.
- Nie przejrzałem matematyki, ale proponuję hipotezę, że każdy n ma wyraźny wynik dla tego algorytmu - to znaczy, że n nie istnieje tak, że R n nie ma nowych czynników.
Oferuję nagrodę w wysokości 250 punktów, jeśli ktoś udowodni lub potwierdzi to w swojej odpowiedzi.Thomas Kwa zaproponował elegancki dowód , a ja przyznałem nagrodę.